KSpeeder 使用指南:如何解决 Docker 镜像无法拉取的问题

文章首发于/公/众/号:阿拉平平

不知道大家有没有注意,我在介绍项目安装时,基本只介绍容器的用法。我觉得对新手而言,容器化部署一定是最友好的,也是效率最高的。不过问题也很明显,Docker 默认会从 Docker Hub 拉取镜像,但因为网络原因,导致无法拉取。那这个难题有没有办法解决呢?

1. 项目介绍

KSpeeder[1] 是一个用于优化 Docker 镜像仓库访问的工具,它提供了智能镜像源选择、下载加速、状态监控等功能。项目提供了多架构支持,可以在不同的硬件平台上运行。

2. 快速安装

首先使用镜像代理下载镜像:

# 拉取镜像
docker pull docker.m.daocloud.io/linkease/kspeeder

# 打上标签
docker tag docker.m.daocloud.io/linkease/kspeeder docker.io/linkease/kspeeder

再创建 docker-compose.yaml,目录结构如下:

/opt/KSpeeder
└── docker-compose.yaml

docker-compose.yaml 内容如下:

version: "3.8"

services:
  kspeeder:
    image: linkease/kspeeder:latest
    container_name: kspeeder
    ports:
      - "5443:5443"
      - "5003:5003"
    volumes:
      - ./kspeeder-data:/kspeeder-data
      - ./kspeeder-config:/kspeeder-config
    restart: unless-stopped

添加好后,在目录中运行以下命令:

docker-compose up -d

服务启动后,在浏览器中输入 http://<IP>:5003 来访问。

3. 使用说明

为了测试 KSpeeder 的加速效果,我决定拉取一个大体积镜像,比如之前介绍过的 Hoppscotch。

正常情况下,拉取 Hoppscotch 镜像的命令为:

docker pull hoppscotch/hoppscotch

要使用 KSpeeder 加速,只需加上前缀 registry.linkease.net:5443 就行了,完整的命令如下:

docker pull registry.linkease.net:5443/hoppscotch/hoppscotch

管理页面显示下载速度可以达到 10 M/s 以上。

4. 其它配置

每次拉取镜像都要加上前缀,多少有些麻烦了。我使用的是 Linux 服务器,只需修改下 Docker 的配置就可以解决这个问题。

编辑 Docker 配置文件(不存在的话则新建):

vi /etc/docker/daemon.json

添加 registry-mirrors 字段并指定 KSpeeder 的镜像服务器:

{
  "registry-mirrors": ["https://registry.linkease.net:5443"]
}

保存配置文件,重启 Docker 服务让其生效:

systemctl restart docker

服务重启好后,再拉取镜像就不用加上前缀了。

5. 写在最后

针对 Docker 无法拉取镜像的情况,通常的做法是配置镜像加速站。但是很多时候,加速站并不稳定,可能运行一段时间后就失效了。KSpeeder 则不失为一个更加简单便捷的解决方案,部署起来也挺方便的。

References

[1] KSpeeder:https://github.com/kspeeder/docker_kspeeder

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容