自建docker加速镜像,使用 Cloudflare Workers/Pages 部署加速教程

使用 Cloudflare Workers/Pages 部署 Docker Hub 镜像加速教程

本教程介绍如何利用 Cloudflare Workers 或 Pages 部署开源项目 CF-Workers-docker.iohttps://github.com/cmliu/CF-Workers-docker.io,实现私有 Docker Hub 镜像加速服务。


一、前提条件

  • GitHub 账号:用于 Fork 项目仓库
  • Cloudflare 账号:用于部署 Workers 或 Pages
  • 自定义域名 :已托管到 Cloudflare 的域名(如 example.com

提示 :如果还没有将域名托管到 Cloudflare,请参考 Cloudflare 域名托管教程


二、项目仓库


三、部署方式一:Pages 方式部署

步骤 1:创建 Pages 项目

  1. 登录 Cloudflare 控制台,进入 Worker 和 Pages概述新建

  2. 选择 Pages ,点击 连接到 Git

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

  4. 无需修改构建设置,直接点击 保存并部署

步骤 2:等待部署完成

  • 部署完成后,点击 继续处理项目

步骤 3:设置自定义域名

  1. 在项目设置中,选择 自定义域设置自定义域
  2. 输入您已托管到 Cloudflare 的域名的任意子域名(例如:hub.example.com)。
  3. 点击 激活域,等待 DNS 生效(通常几分钟内)。

步骤 4:验证部署

访问您的自定义域名(如 https://hub.example.com),应能正常代理到 Docker Hub 主页。


四、部署方式二:Workers 方式部署

步骤 1:创建 Worker

  1. 在 Cloudflare 控制台进入 Worker 和 Pages概述新建
  2. 选择 Worker ,将项目仓库中的 _worker.js 文件内容复制到 Worker 编辑器中。
  3. 保存并部署。

步骤 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 字段:

json 复制代码
{
  "registry-mirrors": [
    "https://hub.example.com"
  ]
}

注意 :请保留文件中的其他现有配置(如 log-driverstorage-driver 等),只添加 registry-mirrors 字段。

注意 :如果文件已有其他配置,请合并 registry-mirrors 字段,避免覆盖现有设置。

重启 Docker Desktop 使配置生效。

6.2 OrbStack 配置

编辑 ~/.orbstack/config/docker.json,在现有配置中添加 registry-mirrors 字段:

json 复制代码
{
  "registry-mirrors": [
    "https://hub.example.com"
  ]
}

注意 :如果文件已有 proxies 配置,请保留并合并 registry-mirrors 字段,避免覆盖现有设置。

注意 :如果文件已有 proxies 配置,请保留并合并 registry-mirrors 字段,避免覆盖现有设置。

重启 OrbStack 使配置生效:

bash 复制代码
# 方式一:命令行重启
orbctl shutdown && open -a OrbStack

# 方式二:在 OrbStack UI 中点击 Restart

6.3 Linux 系统配置

对于 Linux 系统,编辑 /etc/docker/daemon.json

bash 复制代码
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

七、验证配置

bash 复制代码
# 查看当前 Registry 配置
docker info | grep -A 5 "Registry Mirrors"

# 测试拉取镜像
docker pull hello-world

# 测试拉取其他镜像
docker pull nginx:alpine

八、常见问题解答

Q1:部署后无法访问自定义域名?

A:检查以下几点:

  1. 域名是否已正确托管到 Cloudflare
  2. DNS 解析是否已生效(可能需要等待几分钟)
  3. Cloudflare 的 SSL/TLS 设置是否为"完全"或"完全(严格)"

Q2:镜像拉取速度慢?

A:尝试以下方法:

  1. 检查 Cloudflare 的节点分布,选择离您较近的节点
  2. 配置多个镜像加速地址作为备用
  3. 检查本地网络环境

Q3:如何更新 Fork 的仓库?

A:在 GitHub 上执行以下操作:

  1. 进入您 Fork 的仓库
  2. 点击 "Sync fork" 按钮
  3. 选择 "Update branch" 同步最新代码
  4. 重新部署 Workers 或 Pages

Q4:环境变量设置后不生效?

A:确保:

  1. 环境变量名称拼写正确(区分大小写)
  2. 设置后已重新部署项目
  3. 清除浏览器缓存后重新访问

九、注意事项

  1. 域名安全:建议使用不常见的子域名,避免被轻易识别。
  2. 流量监控:定期检查 Cloudflare 的流量统计,防止滥用。
  3. 备用方案:建议配置多个镜像加速地址,提高可用性。
  4. 更新维护:关注原项目更新,及时同步 Fork 的仓库。
  5. 合规使用:请遵守相关法律法规,仅用于个人学习和研究。

十、参考链接


最后更新:2026年5月7日

相关推荐
不像程序员的程序媛7 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
Asuicao10 小时前
centos7.9版本升级ssh OpenSSH 9.8p1 源码 OpenSSL 1.1.1w 源码包以及安装升级回滚文档
运维·ssh
志栋智能11 小时前
超自动化安全中的威胁狩猎
运维·安全·自动化
蜀道山老天师11 小时前
K8s Secret 与 ConfigMap 配置管理及动态更新实战详解
云原生·容器·kubernetes
梦想的颜色11 小时前
【Docker部署插件】:使用 Docker 部署生产级 Kafka 完整版教程
安全·docker·中间件·kafka·消息队列·docker-compose·后端开发
↘"LYong11 小时前
旧版 CentOS 安装 Docker 完整指南(附国内镜像加速)
linux·运维·docker
Elastic 中国社区官方博客12 小时前
Elastic 在 Everest Group 企业搜索产品 PEAK Matrix® 评估 2026 中被评为领导者
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
程序员在囧途12 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
想你依然心痛13 小时前
Linux用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
沉静的小伙13 小时前
在微服务中使用领域事件
java·运维·微服务