暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

国内Docker Hub镜像加速器还有哪些可用? 解决Docker镜像无法拉取问题(持续更新)

DB宝 2024-06-25
870

前言

去年Docker Hub被封锁,不能直接web浏览;而在今年2024年6月初,不能直接从docker hub拉取镜像了。

之前一直使用的 https://dockerproxy.com/ 也已被墙,所有泛域名已被 GFW 封禁及 DNS 污染,已经无法在中国大陆正常使用。

执行docker pull命令拉取docker镜像时无反应,一直在循环尝试。

 1[root@starrocks1 ~]#  docker pull mysql:8.1
28.1: Pulling from library/mysql
38e0176adc18c: Pulling fs layer 
414e977b0f4b2: Pulling fs layer 
5a7b58dd6f78b: Pulling fs layer 
6fba70cc872a5: Waiting 
75db2cc6eab8f: Waiting 
8081f41f573ba: Waiting 
986bf2dc4ded9: Waiting 
1047f08b0e916e: Waiting 
11850e29ae8eeb: Waiting 
1213517fe0d921: Waiting 

复制

下面麦老师整理了几种办法,大家可以参考一下,后期该文持续更新,大家若有新的办法还请不吝赐教。

方法1:修改配置文件

多种方法自行尝试,总有一款适合你,亲测可行!

 1-- 可行
2docker pull dockerhub.timeweb.cloud/postgres:16.2
3docker pull docker.m.daocloud.io/postgres:16.2
4
5
6
7docker pull docker.shootchat.top/postgres:16.2
8docker pull do.nark.eu.org/postgres:16.2
9
10
11
12-- 或直接配置如下加速
13cat > /etc/docker/daemon.json <<"EOF"
14{
15  "registry-mirrors": [
16  "https://vm1wbfhf.mirror.aliyuncs.com",
17  "http://f1361db2.m.daocloud.io",
18  "https://hub-mirror.c.163.com",
19  "https://docker.mirrors.ustc.edu.cn",
20  "https://mirror.baidubce.com",
21  "https://ustc-edu-cn.mirror.aliyuncs.com",
22  "https://registry.cn-hangzhou.aliyuncs.com",
23  "https://ccr.ccs.tencentyun.com",
24  "https://hub.daocloud.io",
25  "https://docker.shootchat.top",
26  "https://do.nark.eu.org",
27  "https://dockerproxy.com",
28  "https://docker.m.daocloud.io",
29  "https://dockerhub.timeweb.cloud",
30  "https://docker.shootchat.top",
31  "https://do.nark.eu.org"
32  ]
33}
34EOF
35
36systemctl daemon-reload 
37systemctl restart docker

复制

方法2:配置代理

若有科学上网的手段,则也可以设置 Docker 代理拉取镜像。

 1sudo mkdir -p /etc/systemd/system/docker.service.d
2
3cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<"EOF"
4[Service]
5Environment="HTTP_PROXY=http://192.16.7.162:9910/"
6Environment="HTTPS_PROXY=http://192.16.7.162:9910/"
7Environment="ALL_PROXY=http://192.16.7.162:9910"
8Environment="NO_PROXY=localhost,127.0.0.1"
9EOF
10
11
12sudo systemctl daemon-reload
13sudo systemctl restart docker
14
15
16
17[root@test /]# sudo docker info | grep Proxy
18 HTTP Proxy: http://192.16.7.162:9910/
19 HTTPS Proxy: http://192.16.7.162:9910/
20 No Proxy: localhost,127.0.0.1

复制

方法3:单镜像加速

Github仓库地址:https://github.com/kubesre/docker-registry-mirrors

您可以根据 镜像同步 Issue 模板 创建一个 Issue, 将会有机器人帮您优先主动同步指定的镜像 同步结果会在 Issue 中更新

接下来通过案例进行演示一下:

1[root@alldb ~]# docker pull openeuler/openeuler:24.03-lts
224.03-lts: Pulling from openeuler/openeuler
3475ac88beb69: Retrying in 1 second 
46c642c978813: Retrying in 1 second 
5error pulling image configuration: download failed after attempts=6: dial tcp 118.113.171.186:443: i/o timeout
6You have mail in /var/spool/mail/root

复制

那我们提个Issue同步一下:浏览器输入:https://github.com/kubesre/docker-registry-mirrors/issues/new?assignees=&labels=sync+image&projects=&template=sync-image.yml

机器人自动同步,不到1分钟就有回复:

 1# Docker 拉取命令
2docker pull swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts
3docker tag swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts docker.io/openeuler/openeuler:24.03-lts
4
5# Containerd 拉取命令
6ctr images pull swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts
7ctr images tag swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts docker.io/openeuler/openeuler:24.03-lts
8
9# Shell 快速替换命令
10sed -i s#docker.io/openeuler/openeuler:24.03-lts#swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts#g 你的文件名

复制

执行结果:

1[root@alldb ~]# docker pull swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts
224.03-lts: Pulling from kubesre/docker.io/openeuler/openeuler
3475ac88beb69: Pull complete 
46c642c978813: Pull complete 
5Digest: sha256:653d617cf99d23c3a9ed7431f80b379349399ea15cf89b43c9fe6cac4cf0ac1b
6Status: Downloaded newer image for swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts
7swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts
8[root@alldb ~]# docker tag swr.cn-east-3.myhuaweicloud.com/kubesre/docker.io/openeuler/openeuler:24.03-lts docker.io/openeuler/openeuler:24.03-lts
9[root@alldb ~]

复制

还是很溜的。。。

总结

1、多种办法可以都尝试一下。

参考

https://github.com/DaoCloud/public-image-mirror 、 https://docker.m.daocloud.io

https://www.aabcc.top/archives/m7NPfx1D

https://dockerproxy.com

https://m.daocloud.io/docker.io/

https://mp.weixin.qq.com/s/25Hx_z06I2G9BRtT5UzcSg

https://zhuanlan.zhihu.com/p/704011584

https://mirrors.kb.cx/status


文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论