站点图标 Liao's blog

Docker仓库镜像代理打造属于自己的Docker Hub

本博文基于原博CMLiussss Blog编写,旨在中转对 Docker 官方镜像仓库,帮助国内用户访问被墙的Docker hub,只建议私人或公司内部使用,不推荐使用该项目搭建公共服务。使用你自己的域名搭建公共服务有可能会遭受污染、反诈或被墙,推荐小规模自用即可。

环境准备


一、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

Centos7安装Docker并更改默认存储文件位置

CentOS7离线安装docker-ce

退出移动版