本博文基于原博CMLiussss Blog编写,旨在中转对 Docker 官方镜像仓库,帮助国内用户访问被墙的Docker hub,只建议私人或公司内部使用,不推荐使用该项目搭建公共服务。使用你自己的域名搭建公共服务有可能会遭受污染、反诈或被墙,推荐小规模自用即可。
环境准备
- GitHub账号
- Cloudflare账号
- 一个属于自己的域名
一、Docker代理工具介绍
本项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具,旨在中转对 Docker 官方镜像仓库的请求,解决访问限制并加速访问。
为什么需要这个工具?
由于神秘原因,国内用户逐渐无法访问Docker Hub仓库。这对于我们开发者来说是个不小的难题。
二、GitHub Fork本项目
点击 Github项目中的Fork
到本地自己的仓库即可。
三、登录Cloudflare创建Pages自动化
登录 cloudflare ,点击Works和Pages并创建
,选择Pages
再连接到刚才我们Fork到Github本地仓库的项目
四、开始部署设置
部署完成后可以进入Pages里的自动化项目,给它设置一个自定义域名。假如我有一个顶级域名:laobaiblog.top
,那我可以再自定义域名中配置一个:docker.laobaiblog.top
作为我的Docker代理域名。
选择DNS解析,在域名解析中添加上Cloudflare生成给你的CNAME记录
。
在你自己的域名解析管理中,添加CNAME记录,填入主机记录
及记录值
参数,等待5分钟后检查DNS记录。完成后访问代理域名会发现自动跳转为官网Docker Hub,且无需翻墙就说明已经实现了docker镜像代理。
地址栏输入你的自定义域名搜索镜像查询,毫无压力。
五、配置验证
在国内服务器上拉取镜像发现无法拉取,一直显示等待连接,各个大厂的镜像源都无法使用或仅内部使用。
docker pull nginx
拉取镜像时加上自己代理的域名。拉取镜像仓库的命令 docker pull docker.laobaiblog.top/nginx
即可拉取镜像。
docker pull docker.laobaiblog.top/nginx
你甚至可以将你的域名配置在daemon.json
中,即可直接使用docker pull nginx
无需再加上域名的前缀。在这里也提供了一些大佬无私分享的代理域名。
#编辑daemon.json
vim /etc/docker/daemon.json
:wq
#重启daemon配置
systemctl daemon-reload
#重启docker
systemctl restart docker.service
DockerHub 镜像仓库 | 镜像地址 |
---|---|
bestcfipas镜像服务 | https://docker.registry.cyou |
https://docker-cf.registry.cyou | |
zero_free镜像服务 | https://docker.jsdelivr.fyi |
https://dockercf.jsdelivr.fyi | |
https://dockertest.jsdelivr.fyi | |
docker proxy | https://dockerpull.com |
https://dockerproxy.cn | |
Docker镜像加速站 | https://hub.uuuadc.top |
https://docker.1panel.live | |
https://hub.rat.dev |