故障现象
- 继去年Docker Hub被封锁后,各大NAS的注册表均出现问题,例如群晖的Docker套件注册表无法连接(更新至DSM7.2版本后恢复)。
- 而在今年2024年6月初(约2024.06.06),NAS中最重要的工具Docker又面临无法使用的问题。
- 常用镜像站:阿里云、科大、南大、上交等,全部挂掉。
- 执行docker pull命令拉取docker镜像时无反应,一直在循环尝试。
- 出现下述错误
猜测原因
- 下面的说法来源于网络
- 2024.06.06,上海交大的Docker Hub镜像加速器宣布因为监管要求被下架。
- index服务器被DNS污染,导致无法拉取镜像。
- 做好全面脱钩的准备
- 自主知识产权的国产Docker将会横空出世
- 临时性管控(过段时间就恢复)
最新方法
再次提醒!多种方法自行尝试,总有一款适合你,亲测可行!
增加Docker镜像注册表地址(20240616仍可行)
1.演示以群晖NAS系统上修改为例(其他系统自行探索方法)
2.打开群晖的Container Manager
(Docker)套件,点击注册表–设置。
3.点击Docker Hub的存储库,然后点击编辑。
4.点击新增,添加下面两个地址,然后点击应用。
5.看到跳出的提示即可(群晖DSM7.2版本的存储库可选择Docker Hub(v1)
)
6.然后打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
7.正常拉取镜像即可
宝塔面板使用教程
1.在Docker界面点击设置
2.点击打开配置文件,并将以下配置粘贴并替换后保存,重启Docker
{
“registry-mirrors”: [
“https://do.nark.eu.org/”
]
}
历史教程(部分可用)
再次提醒!多种方法自行尝试,总有一款适合你,亲测可行!
挂梯子
- 给自己的NAS/其他系统挂梯子
- 自行查找方法,敏感内容不在博客展示。
手动导入已有镜像文件
- 自行获取/
微信S20306找我
需要使用的docker镜像,然后导入到NAS系统内(大部分NAS系统直接WEB页面导入)。 - 例如导入一个存放在NAS文件夹内的docker镜像文件(纯命令行操作导入)
- 进入存放镜像文件的文件夹
- 执行命令,导入docker镜像。
(此命令会按照你docker镜像文件的原格式生成镜像名和版本) - 然后查看本地docker镜像列表
docker代理
- 访问下面的网站
- 拉到底部,将你需要拉取的docker镜像名和版本粘贴到里面。
然后点击获取命令
- 然后依次在NAS上使用SSH终端,执行这三个命令。
- 上面的全部做完后,就可以正常的使用
docker cli
、docker-compose
创建容器了。 - 如果有多个docker镜像需要使用,就重复前面的步骤,换成需要的docker镜像名和版本。
GitHub开源docker镜像加速项目
- 访问此项目
- 与上面是同样的方法,使用代理名称拉取后再改回去。
- 例如拉取Docker Hub仓库的jellyfin/jellyfin:10.9.2版本docker镜像
- 重命名docker镜像
- 删除代理的镜像
其他镜像加速源
Windows端Linux子系统导出镜像
- 常规的Clash代理并不一定可以帮助你docker pull下来镜像,给各个系统挂梯子也麻烦。
那就直接给Windows挂梯子,教程最多,也最简单,调试也方便。
演示将在Windows端的Linux子系统(Ubuntu2404)上进行拉取镜像并导出镜像文件。 - 给你的Windows系统挂梯子(自行解决)
- 进入Linux子系统,切换到
root
后正常的docker pull下来你所需的镜像。 - 查看镜像列表
- 导出docker镜像
(演示以群晖NAS系统上导出的镜像命名格式为例) - Linux系统上导出的镜像默认保存位置是在
/root
路径下 - 查看当前文件夹内的文件
- 带有tag标签的docker镜像文件是包含”符号的
- 将导出的镜像移动到Windows系统上指定的文件夹下
- 然后你就获取了一个带有TAG标签的docker镜像,可以直接导入到群晖NAS上。
打开群晖的Docker套件–映像–操作–导入–从文件添加–从本地设备
- 如果是其他NAS/Linux系统,可以将文件放到文件夹内,然后进入存放镜像的文件夹路径下,执行下面的命令导入docker镜像。
- 查看docker镜像列表
项目地址
- GitHub项目地址:https://github.com/DaoCloud/public-image-mirror