搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

2024-09-22 08:09:15 31点赞 245收藏 82评论

由于某些原因,群晖的Container Manager中的注册表突然出现了打不开,无法正常加载的情况,提示:无法执行此操作,可能是因为网络连接不稳定或系统正忙。请稍后再试。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

事情发生大约在2024年6月,因此,如果出现这个问题再去网上找资料,很多老方法都是告诉你替换国内云厂商或高校网站的docker镜像源,但是由于这些国内的docker镜像加速源几乎全部关闭了,或者仅限内部使用,因此这种方法已经没用了。

那如果还要正常使用Container Manager(Docker)还有什么办法呢?方法有几种:

方法一、让群里通过代理直接访问docker官方镜像

家里有软路由/旁路由,懂科学,把这下面几个docker的官方地址加入代理列表,让群晖通过代理直接访问docker的官方镜像源进行镜像拉取,懂得都懂,今天重点讲第二个方法。

docker.com

hub.docker.com

registry-1.docker.io

index.docker.io

registry.hub.docker.com

方法二、基于 Cloudflare Workers 部署Docker 镜像代理工具

第1步:注册个自己的域名(现在阿里云或腾讯云便宜的很),此步骤省略。

第2步:将域名的托管到cloudflare

1、注册个cloudflare账号(如果有的话直接登录),访问CloudFlare面板(https://dash.cloudflare.com/),点击右上角添加站点,在下面红框中输入你注册的域名,点击继续

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

2、选free免费版套餐,继续

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

3、得到cloudflare的DNS服务器地址

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

4、去到云厂商域名管理后台进行替换,以阿里云为例,进入域名控制台-域名列表,点击操作里的“管理”

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

5、选择DNS管理-DNS修改,点击修改DNS服务器,修改为上面cloudflare给的2个名称服务器地址(下图已经是修改以后的),页面上写需要24-48小时生效,其实不用,等个十几分钟就行了。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

6、十几分钟以后,刷新cloudflare的主页,看你的域名状态是不是由“待处理的名称服务器更新”变成了“活动”,这时候你的域名就托管到了cloudflare。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

第3步:在cloudflare中新建一个worker,私有化部署docker镜像源

1、左侧选择Workers和Pages-概述,点击右侧创建按钮。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

2、点击创建Worker

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

3、取一个名字,点击部署

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

4、点击右上角编辑代码

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

5、删除worker.js文件中的全部默认代码,替换为下面链接中的代码,点击ctrl+s保存,点击右上角部署

代码内容:CF-Workers-docker.io/_worker.js

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

6、点击设置-添加路由-添加,选择自定义域

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

7、在域中输入一个你属于你域名的二级域名,比如你托管在cloudflare的域名是abc.com,你想添加的二级域名是dockerhub,则在输入框里输入:dockerhub.abc.com,点击右下角“添加域”按钮。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

8、添加完以后在设置-域和路由中可以看到你添加的自定义域和网址,需要等几分钟进行解析生效

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

9、过几分钟以后,你通过https://加上你的自定义域的网址,即可成功访问你自己的docker镜像源网站。

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

第4步:在群中添加自己的镜像源

1、打开Container Manager,点击注册表,点击设置,选择新增

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

2、注册表名称随便写,注册表URL填写https://加上你的自定义域的网址,点击应用

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

3、选中自己新增的镜像,点击使用,这时候注册表

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

4、这时候注册表就能正常访问和下载镜像了,不过有个问题,搜索的镜像往往会出现在靠后甚至第二第三页

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

5、如果总是找不到自己要的镜像,也可以通过命令行的方式去下载,需要通过ssh登录群晖的后台,然后用命令的方式进行下载。

比如:你的Workers项目自定义域名为:docker.abc.com,在拉取镜像的时候,在官方镜像路径前面加你的自定义域名即可,如:docker pull docker.abc.com/stilleshan/frpc:latest

搭建自己的Docker 镜像源,解决群晖7.2 Container Manager(Docker)注册表不能用

至此,群晖7.2无法使用Docker/Container Manager的问题就算是解决了,码字不易,如有帮助请帮忙点赞、收藏、分享,如果有其他问题,欢迎在留言区讨论。

项目代码来源:

感谢作者cmliu的github项目:CF-Workers-docker.io

https://github.com/cmliu/CF-Workers-docker.io

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
82评论

  • 精彩
  • 最新
  • 简直是太棒了。基本是完美解决,以后应该不用发愁这个问题了吧。应该也限制不了吧。
    有个想法,能不能通过这种方式科学呢?哪位知道呢。

    校验提示文案

    提交
    一劳永逸,不受限制

    校验提示文案

    提交
    可以科学

    校验提示文案

    提交
    收起所有回复
  • 这时候注册表就能正常访问和下载镜像了,不过有个问题,搜索的镜像往往会出现在靠后甚至第二第三页 --的确也遇到了这个问题,不知道是否有办法解决 。

    校验提示文案

    提交
    可以用 ssh 命令的方式直接拉取

    校验提示文案

    提交
    收起所有回复
  • 不能作为主注册表使用,只能作为docker.io的注册表镜像使用,否则只能单纯下载、无法搜索、无法pull更新,各种问题。

    校验提示文案

    提交
  • 用PC下载镜像成功了,但是用群晖的container manager下载还是失败,求指导。
    日志如下:
    Failed to pull image [error pulling image configuration: download failed after attempts=1: error parsing HTTP 400 response body: invalid character '

    校验提示文案

    提交
  • 大佬,按您的教程,我在浏览器里面输入我域名的那个docker地址,能打开。但群晖docker里面镜像仓库里面,加了那个docker地址,依然无法打开,一片空白,首页显示尚未创建服务,点开镜像仓库,提示无法连接到存储库。点击设置以选择另一个存储库,
    请问是怎么回事?

    谢谢

    校验提示文案

    提交
  • 部署好了,但是搜不到,然后命令不会用,打不全 [喜极而泣]

    校验提示文案

    提交
    搜索得到,要在搜索结果往后翻几页

    校验提示文案

    提交
    收起所有回复
  • dsm6怎么解决?

    校验提示文案

    提交
    理论上一样操作

    校验提示文案

    提交
    我dsm6能搜索,不能下载

    校验提示文案

    提交
    收起所有回复
  • 很好的方法。但是我有个问题,我确实有个阿里云域名,但是我的域名已经通过DDNS解析用于远程登录我的nas,那么还能再托管到CF上么?还是需要再注册一个?

    校验提示文案

    提交
    建议再注册一个,把域名托管到CF可能会导致远程访问变慢。如果想免费,也可以去注册免费二级域名托管到CF,有些二级域名是支持的,比如:去看看,注册教程请自行搜索。

    校验提示文案

    提交
    好滴,谢谢~

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 但是下载还是会报错,怎么办?

    校验提示文案

    提交
    用 ssh docker 命令试一下

    校验提示文案

    提交
    收起所有回复
  • 一定要用阿里域名吗?可不可以是其它动态域名?例如dynv6

    校验提示文案

    提交
    什么域名都可以,主要是要能托管到 cf

    校验提示文案

    提交
    收起所有回复
  • 最完善的教程了,一次成功

    校验提示文案

    提交
  • 花了1块钱,搭建成功

    校验提示文案

    提交
  • 在第8步填写完自定义域之后,页面404无法打开啊, [皱眉] [皱眉] [皱眉]

    校验提示文案

    提交
    我也是一样情况 第二天打卡还是404

    校验提示文案

    提交
    解决了吗
    是不是也是这个提示:404 page not found

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 搜索不准确的,试试搜索后直接点击第5页

    校验提示文案

    提交
  • 我去,太牛了,我折腾了好几天,终于好用了

    校验提示文案

    提交
  • 一直到第三步第9点都是正常的, 但是把这个自定义域网址加到container manager中之后, 依然报同样的错

    校验提示文案

    提交
    我也是,您是怎么解决的?

    校验提示文案

    提交
    收起所有回复
  • [张小草_暗中观察]

    校验提示文案

    提交
  • 感谢分享 终于解决这个问题 顺利拉到镜像了

    校验提示文案

    提交
  • 第一个方法怎么搞

    校验提示文案

    提交
  • 谢谢 完美解决

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
245
扫一下,分享更方便,购买更轻松