前言。。
总所周知
dockerhub在墙内已经无法正常使用
不管是墙封的还是docker公司主动拒绝的
对墙内的docker使用者来说都是极大的不便
因为很多开源的项目或教程都是使用公共的镜像仓库
跟着教程一步步走很多时候都是卡在拉镜像的地方
墙内很多解决办法都是通过一些国内的一些云厂商或大佬的镜像仓库曲线救国(特别要吐槽,国内像阿里云这种厂商,是不是也应该提供下一些常用的镜像供用户拉取)
但是用过的人都知道,那些仓库只能应付常用的镜像场景
很多小众的镜像或者指定的镜像都是没法获取的
这样导致使用起来也是非常麻烦
我们希望的肯定是可以像使用dockerhub一样能自己查询到对应的tag并自由拉取
在dockerhub彻底用不了的时候
我看到github有另外一种曲线方式
来源于 技术爬爬虾大佬的docker_image_pusher 项目
利用在github项目actions功能
将希望拉取的镜像(前提是你要自己查好你要拉什么镜像tag)通过github的服务推送到你的阿里云镜像仓库
这种方式对比直接使用现成的仓库
起码镜像是可以自己控制拉取自己所需要的
不再用等代理仓库拉完才有
但是,人就是怕麻烦,得一就会想二
很多时候我们工作中不同环境的镜像仓库都是隔离的
也就是如果我们需要在一个环境中使用一个特定的开源公共服务镜像
我需要先使用上面的项目把镜像拉下来
如果碰到工作环境要求严格的,你放在github项目的仓库不能是工作环境的仓库
你还得绕一圈左右打tag+push
直到,我又发现了jonssonyan大佬的cf-workers-proxy项目
利用赛博菩萨Cloudflare的worker功能实现对dockerhub访问的直接代理加速
第一步
先注册一个cloudflare账号,需要一个域名,放到Cloudflare托管
步骤就简略了。。
第二部
在首页中看到workers和pages
点解添加一个worker
随便起一个名字,最好有意义
然后将项目中的docker.js内容粘贴到这个worker的代码里面点击部署
最后,在设置里面的域名设置
手动添加一个我们托管进去的二级域名即可
最后
在本地docker客户端,配置registry-mirrors为我们设置的worker域名重启即可使用
拉取镜像时直接输入镜像名,操作起来就像直接连接dockerhub
但是搜索时需要带上worker域名才能正常使用
可选
博主建议是加上IP白名单防止被刷,但是我因为工作环境是不需要,这个看情况加上
然后就是项目中有很多不同功能参数也是按需配置
技术上说该项目是可以代理任何网站喔~