利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

2024-06-29 18:28:13 33点赞 419收藏 26评论

背景:

前段时间dockerhub因为比较复杂的原因在国内被墙了利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

之前只是register服务器被禁用,还能通过使用国内众多的镜像使用

或者通过命令行docker pull拉取镜像

但是这回所有镜像站都被关闭命令行也不好使了。

这直接导致群晖dsm7.x的container manager也无法下载镜像利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

经常更新镜像的项目,需要开全局代理才能够正常拉取镜像,特别麻烦。

尤其是docker engine/cli这些镜像的配置非常的麻烦,远比常规的bash代理复杂很多。

对于很多nas用户来说非常使用非常困难

特别是这类配置代理的手段,需要重启整个docker daemon

说人话就是要关掉所有正在运行的 容器

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题


但是天无绝人之路,前两天看到一篇利用cloudflare pages搭建临时的镜像的文章

试了试,还真的有效

原帖的地址在这里

[20行代码解决dockerhub的访问问题] https://zhuanlan.zhihu.com/p/705937780

感兴趣的可以去原帖查看

省流:

这个方法应该同时适用于dsm6.x和dsm7.x,具体细节可能因为两个版本系统会有差异

你需要做的就是注册cloudflare和github

使用这种方法的代理后,拉取镜像的速度可以跑满带宽利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

什么是cloudflare

这里先简单介绍一下cloudflare

Cloudflare, Inc. 是一家美国公司,提供内容分发网络服务、云网络安全、DDoS缓解、域名服务以及ICANN认证的域名注册服务。Cloudflare的总部位于加利福尼亚州的旧金山。--引用自bing

下面简称CF

CF是一个全球范围的cdn超级巨头,为很多公司的服务器提供cdn服务

(cdn就是类似一个很远的网站,缓存在一些内容在离你比较近的cdn服务器,这样访问延迟,目标服务器压力都会小很多)

值友很多应该听说过PCDN,这个就是一个差不多,cdn服务。

CF的规模很大,也提供很多免费的服务可以白嫖。

比如什么常见的DNS域名托管,解析,也对个人网站提供限量的免费的cdn服务。

简单说就是可以白嫖很多服务了,具体细节去看别的文章吧利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

这里要用到就是CF提供的一个pages,网站服务

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

大概就是给你提供一个免费的小网站服务器,你没法直接操作。

我们要用的就是用CF这个pages服务为dockerhub搭建一个临时的访问点。

当你用docker 访问这个站点时,可以自动转发给dockerhub

实现一个类似nginx 那样的代理效果。

重点是免费

一天提供10000次访问,对于nas用户和一些科研需要的用户,完全足够了利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

什么是github

github实际上是一个很大的,代码托管平台,简单就是提供免费的代码存放 管理服务,

很多人会把自己的代码上传到上面分享,方便其他用户使用,也有很多商业公司在使用github。

github也提供很多免费的服务,比如常见的action自动构建,可以用来编译一些代码,例如openwrt镜像。还有github.io 免费静态网站,可以为自己生成一个免费的静态页面网站,还给你一个不错的域名,但是不能用于其他用途。


想要使用代理

首先你需要在这两个网站上面注册,这里我就略过了

可能有点麻烦的会是github注册,因为可能需要用到2FA,简单说就是一个手机令牌

你可以下载一个microsoft authenticator app来绑定。

Cloudflare的注册就比较简单了,常规的邮箱注册即可。

Github fork项目

这里教程中提到的项目就是位于 whyun-pages/docker-registry (github.com)。

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

然后你需要打开这个项目的网站

按上面的图片点击右上角的fork按钮 (fork的意思是分叉,复制的意思

然后点击确定,复制一份他的代码到你的github仓库当中。

从右上角点击头像,打开your repositories

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

你就能能够看到一个从作者那里fork过来的docker-registry项目了。

剩下的流程就很简单了,跟着上面帖子的流程走就行了。

走完上述流程,你应该可以打开一个这样的镜像网站

(可能需要等几分钟,因为你新开的网站,域名dns解析刷新需要时间

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

给群晖配置代理镜像

流程很简单,先打开群晖的container manager

当然dsm6的docker应该也能使用

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

切换到注册表,点击上方的设置

让我们开始设置镜像代理

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

我们需要修改一下原有的docker hub注册项

像这样

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

如果没有这个的话,你也可以手动添加一个

点击新增即可

注册表名称随意: 毕竟只是名称,你可以改成cloudflare

然后注册表url 是 https://index.docker.io

勾选启用注册表镜像,对应的url里面填入你在CF pages得到的那个网站页面地址

勾选下面的信任的ssl自我签署证书。

上面的记得都要带上https

填完点击确定后,

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

返回上一级,选择你新建的项,然后点击那个使用

这样就选择了这个项作为dockerhub注册的项目了。

确定后,回到container manager里面

点击注册表,随意搜索一个镜像

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

然后我们拉取试试

利用CloudFlare解决群晖DockerHub被禁后无法拉取镜像问题

可以看到有下载速度,并且速度非常夸张的跑满了带宽

可以说效果非常棒。

当然记得不要随意泄漏你们的临时镜像的域名

不然可能会被别人大量拉取,然后超过使用上限。

希望这篇帖子能够帮到大家

然后有什么问题可以在评论区提问

偶尔会回复一下

部分地区可能因为宽带运营商的问题会无法访问github,所以可能会需要代理(比如说移动宽带)

拜拜

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

展开 收起

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

Synology 群晖 DS923+ 四盘位 NAS存储(AMD R1600、4GB)

4209元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核、2GB)

3199元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2399元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

群晖(Synology)BeeStation 4TB 四核心 单盘位 NAS 网络存储 AI家庭相册 联网硬盘 备份iPhone照片手机增程器

群晖(Synology)BeeStation 4TB 四核心 单盘位 NAS 网络存储 AI家庭相册 联网硬盘 备份iPhone照片手机增程器

1980元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6899元起

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

5167.19元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

群晖(Synology)DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 nas存储DS220+主机服务器个人私有云企业2盘办公网络家用局域共享硬盘群辉218+

Synology 群晖 nas存储DS220+主机服务器个人私有云企业2盘办公网络家用局域共享硬盘群辉218+

2849元起

Synology 群晖 DS224+搭配2块希捷(Seagate) 4TB酷狼IronWolf ST4000VN006硬盘套装

Synology 群晖 DS224+搭配2块希捷(Seagate) 4TB酷狼IronWolf ST4000VN006硬盘套装

4290元起

Synology 群晖 DS723+ 2盘位NAS(R1600、2GB)

Synology 群晖 DS723+ 2盘位NAS(R1600、2GB)

4099元起

群晖(Synology) DS224+NAS配2块12TB群晖HAT3310硬盘套装 数据备份一体机

群晖(Synology) DS224+NAS配2块12TB群晖HAT3310硬盘套装 数据备份一体机

7529元起

群晖DS923+nas主机私有云存储群辉万兆四盘位局域网络共享硬盘盒协同办公数据备份精细化权限快照抵御病毒

群晖DS923+nas主机私有云存储群辉万兆四盘位局域网络共享硬盘盒协同办公数据备份精细化权限快照抵御病毒

暂无报价
26评论

  • 精彩
  • 最新
  • 家里弄个旁路由就好了哈,我是在windows服务器里面虚拟一个openwrt,家里的网关都指向它,用了几年稳的一匹

    校验提示文案

    提交
    挂代理确实能部分解决问题,但是不适用大体积和频繁更新的映像。另外代理会影响容器的ipv6访问 [锁眉]

    校验提示文案

    提交
    收起所有回复
  • 补充:cloudflare参考帖子里面,关于2. 防止反向白嫖 自定义鉴权,这一部分其实可以不用设置的,只要你别泄露自己的域名就行了。 如果参考帖子变动较大,可以clone我这个页面的旧版本也能用 去看看

    校验提示文案

    提交
  • 用ssh连接上看源已经更新了,但是就是注册表那不显示,用docker pull了个镜像,能显示到映像里,以后就用命令拉取吧。

    校验提示文案

    提交
  • 没有docker hun (v1)

    校验提示文案

    提交
    那个下面写了,可以自己建一个的哦 [邪恶]

    校验提示文案

    提交
    收起所有回复
  • 都说被墙了,刚刚试了下,为啥我的还能搜索和下载,就是无法获取版本只能下最新latest。很早之前换过一次储存库地址一直用到现在 [抽烟]

    校验提示文案

    提交
    你应该是开了代理或者改了dns? docker可能只是dns污染了并不一定是ip封禁了 [锁眉] ,我也不太清楚,不用这个的话,拉取会卡在0%

    校验提示文案

    提交
    今天刚试了,确实卡在0%,刚按此教程设置好了镜像域名,但是在群晖里始终添加不进去,显示无法进行此操作,可能网络不稳定或系统忙 [皱眉]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 不要老略过了略过了略过了。能来个完整的教程吗

    校验提示文案

    提交
    注册一个网站这种其实难度不大,实在不懂注册流程,网上有很多写得更详细的帖子,很容易找到的。github和cloudflare连实名认证都不需要,一个邮箱就能注册的,比较简单,如果都写上就篇幅太长了

    校验提示文案

    提交
    收起所有回复
  • 这个是不是自己弄一个域名,有没有可以注册免费域名的

    校验提示文案

    提交
    这个dev域名是cf附赠的,不用注册。如果说你想用来跳转到别的域名应该也可以,估计叫ai在网页的js里面添加跳转到指定域名或者ip的逻辑就行了

    校验提示文案

    提交
    收起所有回复
  • 感谢

    校验提示文案

    提交
  • 试下,可以不用,不能没有

    校验提示文案

    提交
  • 试试先

    校验提示文案

    提交
  • 目前只装了网易云自动签到的插件,不受影响!

    校验提示文案

    提交
  • 已经不行了

    校验提示文案

    提交
  • 试了下,还是提示:错误 无法执行此操作,可能是因为网络连接不稳定或系统正忙。请稍后再试。

    校验提示文案

    提交
  • 这个方法现在还有效吗

    校验提示文案

    提交
  • 家人们,最近有更新的,在原来的基础上,记得把github的repo同步一下作者的,然后按照他的提示添加一个auth的环境变量,就能继续使用了,亲测没问题

    校验提示文案

    提交
  • 学习了,阿里的也能用

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

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