![cover](https://bighead-psy.oss-cn-shanghai.aliyuncs.com/sice/docker-wallpaper-2.webp)
国内docker镜像拉取加速
本文最后更新于 2024-07-08,文章内容可能已经过时。
很多软件源/工具源的服务器部署在国外,而近期在大陆由于众所周知的原因,访问这写官方源的服务器速度非常慢,甚至某段时间完全无法访问。
docker hub就是一个典型的例子🤔。
国内解决这个问题主要有2类方法:
配置国内docker hub镜像源
自建Docker Registry Mirror/Proxy
配置国内docker hub镜像源
docker的镜像源文件配置在 /etc/docker/daemon.json处,如果没有的话我们就创建一个然后再修改。
sudo vim /etc/docker/daemon.json
❌失效的镜像源
常见的国内源有:
Docker国内镜像源:https://registry.docker-cn.com
中科大源:https://docker.mirrors.ustc.edu.cn
网易源:https://hub-mirror.c.163.com
百度源:https://mirror.baidubce.com
腾讯源:https://ccr.ccs.tencentyun.com
以上国内镜像源,在2024年6月以后,基本上已经失效或者停止对外服务了❌。
✅亲测可用镜像源
使用方法
添加到daemon.json中
根据实际需求情况,在配置文件中添加需要的镜像源链接,如下所示:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerhub.timeweb.cloud",
"https://docker.1panel.live"
]
}
重启docker,注意由于走的是守护程序daemon,所以daemon进程也需要重启。
sudo systemctl daemon-reload #重启daemon进程
sudo systemctl restart docker #重启docker
最后我们再验证一下是否修改成功,运行
docker info
Registry Mirrors:
https://docker.m.daocloud.io
https://dockerhub.timeweb.cloud
https://docker.1panel.live
那就说明我们的docker国内镜像源修改成功了。然后直接使用 docker pull ImageName
拉取即可。
提醒:一定概率会出现即使你把国内的镜像源配置成功,docker pull 依然会从官方的docker hub上拉取镜像包的情况,多数是因为你配置的镜像源,没有你要拉取的镜像,所以在用户自己配置的源没有找到指定镜像后,最后还是会从官方源拉取。
另外以上国内镜像源,有可能因为一些原因,临时或者永久被关停导致不可用。
直接使用docker hub镜像源
在使用 docker pull 拉取镜像是,镜像名前加上镜像源地址的前缀(去掉https:// ), 以 mysql:5.7为例:
docker pull dockerhub.icu/library/mysql:5.7
阿里云镜像加速器
阿里云加速器(点击管理控制台 -> 登录账号 -> 右侧镜像工具 -> 镜像加速器 -> 复制加速器地址)
获取加速器地址后,将其按照 配置国内docker hub镜像源 中的方法加入到 /etc/docker/daemon.json 里, 或者直接在拉取的时候指定从加速器地址拉取,比如:
# 把xxxyyyzzz换成你自己的加速器前缀
docker pull xxxyyyzzz.mirror.aliyuncs.com/ubuntu
注意📢:阿里云的镜像加速器,并不是实时同步的,所以可能出现你需要的镜像,并没有同步,导致最终拉取失败。 你可以按照阿里云ACR的操作说明,手动同步后再拉取。
- 感谢你赐予我前进的力量