在国内访问Docker Hub时可能会遇到一些困难,但幸运的是,有多种解决方案可以帮助你顺利下载Docker镜像。以下是一些有效的解决方案:
-
配置Docker镜像源:你可以通过配置Docker的daemon.json文件来使用国内镜像源,比如DaoCloud、网易云、Docker 镜像代理、百度云、南京大学镜像站等。这些镜像源通常对外免费,可以显著提高拉取速度 2。
-
使用云服务提供商的镜像加速服务:例如华为云、腾讯云等,它们提供了镜像加速服务,你可以通过修改Docker配置文件来使用这些加速服务 6。
-
使用GitHub Action构建Docker镜像:如果你可以访问GitHub,可以使用GitHub Action来构建Docker镜像,然后下载构建好的镜像包到本地再进行加载 6。
-
部署DockerHub代理:通过部署代理服务,比如使用Cloudflare Workers,可以绕过一些访问限制,实现Docker镜像的快速下载 6。
-
镜像仓库前缀替换:如果某些镜像仓库无法直接访问,可以尝试将原有的仓库前缀替换为国内服务商提供的前缀,例如将
docker.io
替换为docker.m.daocloud.io
等 6。 -
使用其他Docker替代方案:如果Docker Hub的服务调整影响到你的使用,可以考虑使用无服务器架构作为替代方案,这可以简化部署过程并降低成本 5。
-
手动下载和上传镜像:对于一些热门的Docker仓库,如果镜像更新及时,可以手动下载镜像文件,然后使用
docker load
命令上传到本地仓库 6。
请注意,部分镜像源可能存在更新不及时的问题,因此在配置时建议设置两个以上的镜像源以确保可以拉取到最新的镜像。
配置镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
汇总国内可用镜像
DaoCloud 镜像站
加速地址:https://docker.m.daocloud.io
支持:Docker Hub、GCR、K8S、GHCR、Quay、NVCR 等
对外免费:是
网易云
加速地址:https://hub-mirror.c.163.com
支持:Docker Hub
对外免费:是
Docker 镜像代理
加速地址:https://dockerproxy.com
支持:Docker Hub、GCR、K8S、GHCR
对外免费:是
百度云
加速地址:https://mirror.baidubce.com
支持:Docker Hub
对外免费:是
南京大学镜像站
加速地址:https://docker.nju.edu.cn
支持:Docker Hub、GCR、GHCR、Quay、NVCR 等
对外免费:是
上海交大镜像站
加速地址:https://docker.mirrors.sjtug.sjtu.edu.cn/
支持:Docker Hub、GCR 等
限制:无
阿里云
加速地址:https://<your_code>.mirror.aliyuncs.com
支持:Docker Hub
限制:需要登录账号获取CODE
科大镜像站
加速地址:https://docker.mirrors.ustc.edu.cn
支持:Docker Hub、GCR、Quay
限制:仅供内部访问
Azure中国镜像
加速地址:https://dockerhub.azk8s.cn
支持:Docker Hub、GCR、Quay
限制:仅供内部访问
失效关闭
七牛云
加速地址:https://reg-mirror.qiniu.com
支持:Docker Hub、GCR、Quay
限制:已关闭
Docker 中国官方镜像
加速地址:https://registry.docker-cn.com
支持:Docker Hub
限制:已关闭
其他方式
对于一些比较热门Docker仓库,国内加速镜像更新还算及时。毕竟大厂们免费提供镜像服务,有挺大的成本。不会全量缓存Docker Hub仓库,以及镜像更新不及时!
最快速及时的方式直接请求 http://hub.docker.com 获取docker仓库。