本博文基于原博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 |
