欢迎光临
我们一直在努力

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

使用 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:设置自定义域名

  • 在项目设置中,选择 自定义域 → 设置自定义域。 在这里插入图片描述
  • 输入您已托管到 Cloudflare 的域名的任意子域名(例如:hub.example.com)。
  • 点击 激活域,等待 DNS 生效(通常几分钟内)。
  • 步骤 4:验证部署

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


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

    步骤 1:创建 Worker

  • 在 Cloudflare 控制台进入 Worker 和 Pages → 概述 → 新建。
  • 选择 Worker,将项目仓库中的 _worker.js 文件内容复制到 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:检查以下几点:

  • 域名是否已正确托管到 Cloudflare
  • DNS 解析是否已生效(可能需要等待几分钟)
  • Cloudflare 的 SSL/TLS 设置是否为"完全"或"完全(严格)"
  • Q2:镜像拉取速度慢?

    A:尝试以下方法:

  • 检查 Cloudflare 的节点分布,选择离您较近的节点
  • 配置多个镜像加速地址作为备用
  • 检查本地网络环境
  • Q3:如何更新 Fork 的仓库?

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

  • 进入您 Fork 的仓库
  • 点击 “Sync fork” 按钮
  • 选择 “Update branch” 同步最新代码
  • 重新部署 Workers 或 Pages
  • Q4:环境变量设置后不生效?

    A:确保:

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

  • 九、注意事项

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

  • 十、参考链接

    • CF-Workers-docker.io 项目
    • Cloudflare Workers 文档
    • Cloudflare Pages 文档
    • Docker 官方文档
    • 博客园教程原文

    最后更新:2026年5月7日

    赞(0)
    未经允许不得转载:171主机测评 » 自建docker加速镜像,使用 Cloudflare Workers/Pages 部署加速教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址