Docker容器拉取不了的原因及解决Docker容器国内无法下载的方法

admin

       这两天有网友反馈:群晖的ContainerManager无论是在套件界面安装容器还是使用docker pull命令拉取容器均拉取失败,昨晚看到了这条消息。

 

 

 

       这是没有添加镜像服务器之前,下载容器进度会一直显示0%;

 

 

       过几分钟就会提示:无法下载映像;

 


       现阶段,想解决Docker国内无法访问的办法,主要有两种:

一、第一种:挂代理

如果你使用的网络环境有代理服务器(科学出国环境),可以参考【这个教程】进行设置。

 

二、如果你使用的网络环境没有代理服务器(科学出国环境),可以使用“第二种:添加镜像服务器”的办法(两种添加添加镜像服务器的方法,任意选择一个来做就行了):

A、添加镜像服务器的方法一


1、打开ContainerManager,注册表,设置;

 

 

2、编辑;

 

 

3、勾选“启用注册表镜像”,新增;

 

 

4、把以下镜像服务器的地址复制粘贴进去,可只写一个,也可以添加若干个:

【2024年11月1日更新镜像服务器列表】

https://docker.registry.cyouhttps://docker-cf.registry.cyouhttps://dockerpull.comhttps://dockerproxy.cnhttps://docker.1panel.livehttps://hub.rat.devhttps://dhub.kubesre.xyzhttps://docker.hlyun.orghttps://docker.kejilion.prohttps://registry.dockermirror.comhttps://docker.chenby.cnhttps://ccr.ccs.tencentyun.comhttps://hub.littlediary.cnhttps://hub.firefly.storehttps://docker.nat.tfhttps://hub.crdz.gqhttps://noohub.ruhttps://docker.nastool.dehttps://hub.docker-ttc.xyzhttps://freeno.xyzhttps://docker.hpcloud.cloudhttps://dislabaiot.xyzhttps://ginger20240704.asiahttps://doublezonline.cloudhttps://dockerproxy.com

 

 


 

B、添加镜像服务器的方法二


1、打开群晖控制面板,任务计划,新增,触发的任务,用户定义的脚本;

 

 

2、在“常规”标签中,任务名称写ContainerManager,用户账号需要改成root,“已启动”处不用打勾;

 

 

3、在“任务设置”标签中,把下面的内容复制到用户定义的脚本中(原理是给当前群晖ContainerManager套件添加四个docker镜像服务器地址,这四个服务器均架设在俄罗斯),确定;

synopkgctl stop ContainerManagercp -f /var/packages/ContainerManager/etc/dockerd.json /var/packages/ContainerManager/etc/dockerd.json.baksed -i 's|\[\]|["https://docker.m.daocloud.io","https://huecker.io","https://dockerhub.timeweb.cloud", "https://noohub.ru"]|g' /var/packages/ContainerManager/etc/dockerd.jsonsynopkgctl start ContainerManager

 

 

 

4、确定;

 

 

5、输入群晖当前登录的管理员账号密码,提交;

 

 

6、找到刚才保存的“ContainerManager”任务计划,点鼠标右键,运行;

 

 

7、确定;

 

 

8、运行这个任务的时候,ContainerManager套件会自动停止,然后过几秒钟ContainerManager套件会自动重新启用,当看到ContainerManager套件恢复启用的时候,把任务计划中的“ContainerManager”点鼠标右键,删除;

 

 

9、确定;

 


 


三、使用的效果

1、到注册表重新下载docker容器试试,发现已经可以正常下载了,只不过下载速度有点慢,耐心等待即可;

 

 

2、看到消息,已经提示下载成功了。

 

 

 

四、其他说明

1、上述添加镜像服务器的办法在群晖DSM7.21系统中测试成功;

2、如果你用的是这个系统,可以自行在你的系统中添加镜像服务器,镜像服务器地址是:

【2024年11月1日更新镜像服务器列表】

https://docker.registry.cyouhttps://docker-cf.registry.cyouhttps://dockerpull.comhttps://dockerproxy.cnhttps://docker.1panel.livehttps://hub.rat.devhttps://dhub.kubesre.xyzhttps://docker.hlyun.orghttps://docker.kejilion.prohttps://registry.dockermirror.comhttps://docker.chenby.cnhttps://ccr.ccs.tencentyun.comhttps://hub.littlediary.cnhttps://hub.firefly.storehttps://docker.nat.tfhttps://hub.crdz.gqhttps://noohub.ruhttps://docker.nastool.dehttps://hub.docker-ttc.xyzhttps://freeno.xyzhttps://docker.hpcloud.cloudhttps://dislabaiot.xyzhttps://ginger20240704.asiahttps://doublezonline.cloudhttps://dockerproxy.com

 

3、除了群晖支持以外,理论上所有使用docker的环境,包括不仅于:群晖、威联通、Linux等等。

 

 


2024年6月16日更新:

       鉴于GFW进一步的增高,如果你的网络没有代理环境、Docker也没有添加加速地址的情况下,注册表不显示并且用命令拉取也会报错的哦!如果没有代理环境只添加了加速地址,注册表依然不会显示,但已经可以用命令拉取了。如果想让注册表能正常显示,只能挂代理。

      由于上述镜像服务器地址并非博主搭建,所以时效性没有保障,有条件的请参考《利用CloudFlare搭建一个专属自己的Docker镜像加速和代理工具》自行搭建自己专属的docker加速地址。

1.386215s