前言
国内用户在使用 docker
时,想必都遇到过镜像拉取慢的问题,那是因为 docker
默认指向的镜像下载地址是 https://hub.docker.com,服务器在国外。
网上有关配置 docker
国内镜像源的教程很多,像 腾讯、阿里、网易 等等都会提供镜像仓库,自行配置下即可。
一般配置完镜像源后,拉取镜像都会快不少,但是目前我配置了镜像源了,拉取镜像速度还是非常的慢。最终发现是配置的镜像源没有对应的镜像仓库(ghcr.io
)的资源。
我的解决方式
由于我需要拉取的镜像使用者比较少,国内的源都没有资源,最终还是找了一台能上外网的机器,拉取镜像后保存下来再转移到目标机器。
使用了 docker
的 save
load
转移。
# 能上外网的机器拉取并保存
docker pull 镜像名:tag
docker save 镜像名:tag > 1.tar# 目标机器
docker load < 1.tar
这里提一下,若是没有机器能够上外网,可以试试 DaoCloud ,不过我试了貌似没什么用。
镜像仓库、镜像源
首先需要了解下镜像仓库和镜像源
名词 | 解释 |
---|---|
镜像仓库 | 镜像的存放地址,类似 docker.io , ghcr.io 等 |
镜像源 | 国内提供的加速器,例如网易的 http://hub-mirror.c.163.com 等 |
常见的镜像仓库
docker.io
:Docker Hub
官方镜像仓库,也是Docker
默认的仓库gcr.io
、k8s.gcr.io
:谷歌镜像仓库quay.io
:Red Hat
镜像仓库ghcr.io
:GitHub
镜像仓库
常见的国内镜像源
- 中国区官方镜像:
https://registry.docker-cn.com
- 清华源:
https://docker.mirrors.ustc.edu.cn
- 阿里源:
https://cr.console.aliyun.com
- 腾讯源:
https://mirror.ccs.tencentyun.com
- 网易源:
http://hub-mirror.c.163.com
这篇文章 的图很好,下图是直接拿过来的。
如何配置镜像源
这里提一下如何配置镜像源吧,记得修改完成后需重启 docker
。
linux(非 Docker Desktop)
# 修改 daemon.json,若是没有该文件则创建
sudo vi /etc/docker/daemon.json
# 添加 registry-mirrors
{"registry-mirrors": ["https://registry.docker-cn.com","https://hub-mirror.c.163.com","https://docker.m.daocloud.io"]
}
Docker Desktop (windows/mac/linux)
打开 Docker Desktop
窗口,找到 设置 -> Docker Engine
在 json
中添加 registry-mirrors
数组即可。
总结
docker
拉取镜像慢,通常配置了国内镜像源后,速度可以得到极大的改善。
但若是配置了镜像源后,拉取镜像还是非常慢,那就需要自己想想办法搭个梯子直接从外网拉取镜像。
参考
- DaoCloud public-image-mirror
- 无法愉快拉取 gcr.io、quay.io、ghcr.io 容器镜像?手把手教你用魔法来打败魔法