前言
最近,由于国内热门的 Docker 镜像源大部分都停止了服务,我尝试了好几个由他人维护的镜像源,但总担心这些服务不会持续稳定。
因此,我在网上找到了一份自建代理镜像源的教程,利用 Cloudflare 提供的免费 Workers 服务,搭建了一套个人自用的 Docker 镜像源服务。
这样一来,我就不再需要担心他人提供的服务的稳定性问题了。
使用前提
由于 Cloudflare 免费提供的域名在国内无法访问,因此在使用这个免费服务之前,必须先在 Cloudflare 中绑定一个自定义域名。
关于如何绑定域名,请参考其他教程。
创建服务
首先,我们进入“Workers 和 Pages”的界面,然后点击创建。在创建应用程序的界面,我们选择创建 Workers。

这个项目提供两种部署方式:一种是直接使用代码进行部署,另一种是需要 fork 源代码后提供一个 GitHub 仓库再进行部署。
为了简化操作,我选择了第一种方式。使用 Workers 服务。

创建后,将随机生成的名称修改为一个易于记忆的名称,然后直接点击部署即可。

部署成功后,我们可以修改默认代码。

部署代码
服务创建完成后,我们需要使用开源项目中提供的 _worker.js
文件来实现代理转发功能。
https://github.com/cmliu/CF-Workers-docker.io

点击“编辑代码”进入编辑器界面,将项目中的代码内容复制并替换当前的 worker.js 文件内容,然后将内容中的指定内容,替换为自己的域名。

操作完成后,点击‘部署’以使其生效。
域名绑定
部署成功后,我们进入该服务的设置界面,然后在“触发器”功能中添加“自定义域”。

在输入域名时需要注意,这个域名必须是我们绑定的自定义域名,否则无法添加。

我们可以使用类似 docker.example.com
这样的二级域名,当然也可以选择其他自己喜欢的标识。

绑定成功后,我们就可以在浏览器中使用这个域名进行访问了,打开后会显示 Docker 仓库的主界面。

END
最后,确认在没有科学上网的环境下能够正常访问后,就可以将其添加到 Docker 镜像源的配置中。
配置文件: /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.自己的域名"
]
}