使用 Cloudflare Workers/Pages 部署 Docker Hub 镜像加速教程
本教程介绍如何利用 Cloudflare Workers 或 Pages 部署开源项目 CF-Workers-docker.io:https://github.com/cmliu/CF-Workers-docker.io,实现私有 Docker Hub 镜像加速服务。
一、前提条件
- GitHub 账号:用于 Fork 项目仓库
- Cloudflare 账号:用于部署 Workers 或 Pages
- 自定义域名:已托管到 Cloudflare 的域名(如 example.com)
提示:如果还没有将域名托管到 Cloudflare,请参考 Cloudflare 域名托管教程。
二、项目仓库
- 项目地址:CF-Workers-docker.io
- 操作:将该项目 Fork 到您自己的 GitHub 仓库。

三、部署方式一:Pages 方式部署
步骤 1:创建 Pages 项目
登录 Cloudflare 控制台,进入 Worker 和 Pages → 概述 → 新建。 
选择 Pages,点击 连接到 Git。 

选择 GitHub,授权并选择您 Fork 的仓库,点击 开始设置。

无需修改构建设置,直接点击 保存并部署。
步骤 2:等待部署完成
- 部署完成后,点击 继续处理项目。
步骤 3:设置自定义域名

步骤 4:验证部署
访问您的自定义域名(如 https://hub.example.com),应能正常代理到 Docker Hub 主页。
四、部署方式二:Workers 方式部署
步骤 1:创建 Worker
步骤 2:设置自定义域名
- 在 Worker 设置中,添加自定义域名(需已托管在 Cloudflare)。
五、环境变量设置(防封措施)
为防止域名被封锁,可设置以下环境变量:
| URL302 | https://t.me/CMLiussss | 否 | 主页 302 跳转地址 |
| URL | https://www.baidu.com/ 或 nginx | 否 | 主页伪装(设为 nginx 则伪装为 nginx 默认页面) |
| UA | netcraft | 否 | 支持多元素,用空格或换行分隔 |
推荐配置:设置 URL 变量为 nginx,可将主页伪装为 nginx 默认页面,不影响镜像拉取。
设置环境变量
- Pages 方式:在项目设置 → 环境变量 中添加。
- Workers 方式:在 Worker 设置 → 变量 中添加。
设置后需重新部署项目。
六、客户端配置
6.1 Docker Desktop 配置
编辑 ~/.docker/daemon.json,在现有配置中添加 registry-mirrors 字段:
{
"registry-mirrors": [
"https://hub.example.com"
]
}
注意:请保留文件中的其他现有配置(如 log-driver、storage-driver 等),只添加 registry-mirrors 字段。
注意:如果文件已有其他配置,请合并 registry-mirrors 字段,避免覆盖现有设置。
重启 Docker Desktop 使配置生效。
6.2 OrbStack 配置
编辑 ~/.orbstack/config/docker.json,在现有配置中添加 registry-mirrors 字段:
{
"registry-mirrors": [
"https://hub.example.com"
]
}
注意:如果文件已有 proxies 配置,请保留并合并 registry-mirrors 字段,避免覆盖现有设置。
注意:如果文件已有 proxies 配置,请保留并合并 registry-mirrors 字段,避免覆盖现有设置。
重启 OrbStack 使配置生效:
# 方式一:命令行重启
orbctl shutdown && open -a OrbStack
# 方式二:在 OrbStack UI 中点击 Restart
6.3 Linux 系统配置
对于 Linux 系统,编辑 /etc/docker/daemon.json:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://hub.example.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
七、验证配置
# 查看当前 Registry 配置
docker info | grep -A 5 "Registry Mirrors"
# 测试拉取镜像
docker pull hello-world
# 测试拉取其他镜像
docker pull nginx:alpine
八、常见问题解答
Q1:部署后无法访问自定义域名?
A:检查以下几点:
Q2:镜像拉取速度慢?
A:尝试以下方法:
Q3:如何更新 Fork 的仓库?
A:在 GitHub 上执行以下操作:
Q4:环境变量设置后不生效?
A:确保:
九、注意事项
十、参考链接
- CF-Workers-docker.io 项目
- Cloudflare Workers 文档
- Cloudflare Pages 文档
- Docker 官方文档
- 博客园教程原文
最后更新:2026年5月7日



