• 首页
  • 实用工具
    • 杀毒软件
    • 漏洞补丁
    • 协同办公
    • 多媒体
    • 常用软件
    • 浏览器
    • 图像编辑
    • 系统软件
    • 开发工具
    • 上传下载
    • 网络软件
    • 系统驱动
    • 卸载优化
    • 编程开发
    • 文本工具
    • 备份还原
    • 人工智能
    • 视频处理
  • 技术博客
    • 安全公告
    • 游戏目录
    • 教育教学
  • 开源项目
    • 开源网站代码
    • 服务器软件
  • Android
    • 手机系统软件
    • 手机图像
    • 手机音乐播放器
    • 手机视频
  • macOS应用
    • mac播放器
Pcsafer:专注电脑软件安全,重塑清爽阅读环境。
  1. 首页
  2. 教育教学
  3. 正文

国内 Docker 无法拉取镜像?3 分钟教你用自己的域名自建加速通道(Linux 全攻略)

2026年1月28日 176点热度 0人点赞 0条评论

针对 2026 年国内 Docker Hub 镜像站大面积失效的问题,本文详细介绍如何利用 Cloudflare Workers 和自有域名,零成本搭建稳定、私有的 Docker 镜像加速代理。支持 Linux 服务器一键配置,彻底解决 docker pull 报错及连接超时问题。“本教程不仅适用于 Linux 服务器,同样解决 群晖 (Synology) 和 宝塔面板 用户在拉取镜像时遇到的报错问题。”

准备工作

  1. Cloudflare 账号:免费版即可。

  2. 自定义域名:需托管在 Cloudflare(例如 docker.yourdomain.com)。

  3. Linux 服务器:需要拉取镜像的目标机器。


第一步:部署 Cloudflare Worker

  1. 登录 Cloudflare 控制台。

  2. 点击左侧菜单栏的 Workers & Pages(Workers 和页面) -> Create application(创建应用程序) -> Create Worker(创建 Worker)。

  3. 给你的 Worker 起个名字(如 docker-proxy),点击 Deploy(部署)。

  4. 点击 Edit Code(编辑代码),将默认代码全部清空,替换为以下优化后的代码:

JavaScript
// 代理配置:支持 Docker Hub, Quay.io, gcr.io 等
const hub_host = 'registry-1.docker.io'
const auth_url = 'https://auth.docker.io'
const workers_url = 'https://docker.yourdomain.com' // 替换成你自己的域名

export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);
    const path = url.pathname;
    const host = url.hostname;

    // 处理 Docker 认证请求
    if (path.includes('/v2/auth')) {
      const newUrl = new URL(auth_url + path + url.search);
      const newRequest = new Request(newUrl, request);
      return fetch(newRequest);
    }

    // 转发拉取镜像请求
    const newUrl = new URL(`https://${hub_host}${path}${url.search}`);
    const newRequest = new Request(newUrl, {
      method: request.method,
      headers: request.headers,
      redirect: 'follow'
    });

    return fetch(newRequest);
  }
};
  1. 点击 Save and Deploy(保存并部署)。


第二步:绑定自定义域名(关键步骤)

由于 *.workers.dev 域名在中国大陆被封锁,必须绑定你自己的域名。

  1. 在刚才的 Worker 详情页中,点击 Settings(设置) -> Domains & Routes(域和路由)。

  2. 点击 Add Custom Domain(添加自定义域名)。

  3. 输入你准备好的二级域名(如 docker.yourdomain.com),点击确认。等待几分钟解析生效。


第三步:在 Linux 服务器上配置 Docker

登录你的 Linux 服务器,修改 Docker 配置文件:

1. 修改 daemon.json

Bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.yourdomain.com"]
}
EOF

请将 docker.yourdomain.com 替换为你实际绑定的域名。

2. 重启 Docker 服务

Bash
sudo systemctl daemon-reload
sudo systemctl restart docker

第四步:验证是否成功

运行以下命令测试拉取:

Bash
docker pull nginx:latest

如果能够看到下载进度条,说明你的私有镜像加速站已经完美运行!


常见问题与进阶优化

Q1:为什么拉取大镜像时会断开?

A:Cloudflare Workers 免费版有请求时间限制。如果镜像层(Layer)特别大且服务器带宽慢,可能会超时。

  • 解决方法:多次尝试,Docker 支持断点续传;或者升级为付费版($5/月)。

Q2:如何支持私有镜像库?

A:本教程主要针对公共镜像。若要拉取私有镜像,建议在代码中加入认证头处理,但为了安全起见,站长建议自建代理仅限个人或内部使用,不要公开 URL。

Q3:DNS 污染怎么办?

A:如果在某些地区仍然无法解析你的域名,可以在 /etc/hosts 中手动添加一条记录,将你的域名指向 Cloudflare 的任一 优选 IP。


站长笔记: 在这个技术环境多变的时代,自建工具是每个管理员的必修课。本方案不仅解决了 Docker 拉取问题,其原理同样适用于 NPM、PyPI 等镜像的反向代理。

相关文章:

  1. 全国中小学生学籍信息管理系统跨省办理平台数字证书安装教程及下载
  2. Scratch 2离线编辑器
  3. 粤教翔云数字教材应用平台V3.0
  4. 中国人民抗战胜利76周年
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Cloudflare代理Docker Docker Hub替代方案 Docker镜像加速 Docker镜像源失效 Linux Docker换源
最后更新:2026年1月28日

guest

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 准备工作
  • 第一步:部署 Cloudflare Worker
  • 第二步:绑定自定义域名(关键步骤)
  • 第三步:在 Linux 服务器上配置 Docker
    • 1. 修改 daemon.json
    • 2. 重启 Docker 服务
  • 第四步:验证是否成功
  • 常见问题与进阶优化
    • Q1:为什么拉取大镜像时会断开?
    • Q2:如何支持私有镜像库?
    • Q3:DNS 污染怎么办?
站内文章搜索
实时下载排行

Copyright © 2022 - 2026 PcSafer.com. All Rights Reserved.

探索安全、开源与实用的数字边界 / Exploring the Boundaries of Security, Open Source, and Utility.

关于我们 / About | 免责声明 / Disclaimer | 隐私政策 / Privacy | 联系我们 / Contact | 网站地图 / Sitemap
粤ICP备2022024228号 | 粤公网安备 44190002006251号