这两天有网友反馈:群晖的ContainerManager无论是在套件界面安装容器还是使用docker pull命令拉取容器均拉取失败,昨晚看到了这条消息。
这是没有添加镜像服务器之前,下载容器进度会一直显示0%;
现阶段,想解决Docker国内无法访问的办法,主要有两种:
一、第一种:挂代理
如果你使用的网络环境有代理服务器(科学出国环境),可以参考【这个教程】进行设置。
二、如果你使用的网络环境没有代理服务器(科学出国环境),可以使用“第二种:添加镜像服务器”的办法(两种添加添加镜像服务器的方法,任意选择一个来做就行了):
A、添加镜像服务器的方法一
1、打开ContainerManager,注册表,设置;
4、把以下镜像服务器的地址复制粘贴进去,可只写一个,也可以全部都加上:
https://docker.m.daocloud.io
https://docker.registry.cyou
https://docker-cf.registry.cyou
https://dockercf.jsdelivr.fyi
https://docker.jsdelivr.fyi
https://dockertest.jsdelivr.fyi
https://huecker.io
https://dockerhub.timeweb.cloud
https://noohub.ru
B、添加镜像服务器的方法二
1、打开群晖控制面板,任务计划,新增,触发的任务,用户定义的脚本;
2、在“常规”标签中,任务名称写ContainerManager,用户账号需要改成root,“已启动”处不用打勾;
3、在“任务设置”标签中,把下面的内容复制到用户定义的脚本中(原理是给当前群晖ContainerManager套件添加四个docker镜像服务器地址,这四个服务器均架设在俄罗斯),确定;
synopkgctl stop ContainerManager
cp -f /var/packages/ContainerManager/etc/dockerd.json /var/packages/ContainerManager/etc/dockerd.json.bak
sed -i 's|\[\]|["https://docker.m.daocloud.io","https://huecker.io","https://dockerhub.timeweb.cloud", "https://noohub.ru"]|g' /var/packages/ContainerManager/etc/dockerd.json
synopkgctl start ContainerManager
6、找到刚才保存的“ContainerManager”任务计划,点鼠标右键,运行;
8、运行这个任务的时候,ContainerManager套件会自动停止,然后过几秒钟ContainerManager套件会自动重新启用,当看到ContainerManager套件恢复启用的时候,把任务计划中的“ContainerManager”点鼠标右键,删除;
三、使用的效果
1、到注册表重新下载docker容器试试,发现已经可以正常下载了,只不过下载速度有点慢,耐心等待即可;
四、其他说明
1、上述添加镜像服务器的办法在群晖DSM7.21系统中测试成功;
2、如果你用的不是这个系统,可以自行在你的系统中添加镜像服务器,镜像服务器地址是:
https://docker.m.daocloud.io
https://docker.registry.cyou
https://docker-cf.registry.cyou
https://dockercf.jsdelivr.fyi
https://docker.jsdelivr.fyi
https://dockertest.jsdelivr.fyi
https://huecker.io
https://dockerhub.timeweb.cloud
https://noohub.ru
3、除了群晖支持以外,理论上所有使用docker的环境,包括不仅于:群晖、威联通、Linux等等。
2024年6月16日更新:
有条件的可以自行搭建专属的docker加速工具,具体请参考《利用CloudFlare搭建一个专属自己的Docker镜像加速和代理工具》。