Docker Mirror · 使用说明
一个能让
docker pull真的快起来的自建镜像加速站。

为什么又一个镜像站?
其实免费的 Docker 镜像站不少,比如 status.anye.xyz 里就记录了一长串,其中不乏基于 Cloudflare 的站点。但能用和好用之间,差了一条不小的河。
你大概率遇到过这样的场景:
- 某个镜像站能拉、但拉到一半速度掉到几十 KB/s,挂着等一晚上不如重来
- 切回官方仓库又超时,于是又换下一个镜像站,循环往复
- 有些 CI/CD 场景本来就赶时间,重试一轮整条流水线就跪了
- 部分项目搞 GitHub Action 把镜像同步到阿里云等国内仓库,流程繁琐还有延迟,官方更新后同步得等
- 更有甚者,一些镜像站是付费的
能拉取这件事本身已经被解决得差不多了,剩下的真正痛点是——拉得够不够快。

本站的差异化
这个镜像站和大多数免费站的区别在于:把”快”这件事单独当作一等目标来做。
具体怎么做到?三件事:
Nginx 分层缓存策略
按 URL 特征区别对待——内容寻址的 blob 和 manifest 缓存 30 天,latest标签绝不缓存,具名 tag 缓存 1 小时。热门镜像基本命中缓存,冷启动才回源。Cloudflare 全球 CDN 兜底
即使 Nginx 没缓存,CF 边缘节点也会在你附近复用,进一步减少跨洋流量。客户端本地优选 IP
这是让下载速度产生质变的一步,也是大多数人没做的一步。详见下一节。
高速下载的关键:本地测速 + hosts 绑定
这是整份说明的重点。会不会做这一步,决定了下载体验是”能用”还是”起飞”。
为什么默认连接会慢
Cloudflare 采用 Anycast 路由,理论上会把你自动分配到最近的边缘节点。但”最近”是按网络拓扑算的,不一定是对你速度最快的:
- 运营商到 CF 某个 POP 的路由可能绕路
- 被分配到的节点可能带宽被打满
- 节点和节点之间的下载速度能差十倍不止
同一个镜像站,换个 IP 访问可能从 200 KB/s 变成 20 MB/s——这不是夸张。
为什么必须本地做,不能服务端预先优选
这是个常被忽略的点:
- 对我快 ≠ 对你快。你所在网络到 CF 节点的路由质量,只有你自己能测。
- 对命中缓存的请求无效。CF 边缘命中时根本不回源,服务端做的任何优选都绕不过去。
- 持续扫描属于滥用 CF。后端不断测全量 IP 段会触发风控,有违 CF 服务条款。
所以任何有良心的镜像站都不会帮你”全球优选”——这活儿必须你本机做。
具体怎么做(三步)
1. 用 XIU2/CloudflareSpeedTest
开源项目,支持 Windows / Linux / macOS:
1 | # Linux |
Windows 推荐 scoop install dorado/cloudflare-speedtest,macOS 换 darwin_arm64 包。
2. 看”下载速度”那一列,不是看延迟
测速结果类似:
1 | IP 地址 丢包率 平均延迟 下载速度(MB/s) 地区 |
延迟只是初筛,决定体验的是下载速度那一列。挑 MB/s 最高的那个 IP。

3. 写入 hosts
1 | # Linux / macOS |
然后刷新 DNS 缓存,再 docker pull 就会走你选中的节点了。
隔 1–2 周重测一次即可。节点状态会随时间漂移,但也不需要天天测,太勤反而没必要。
一劳永逸 vs. GitHub Action 同步
常见的另一种”加速方案”是用 GitHub Action 把镜像同步到阿里云 / 腾讯云等国内仓库。这种方案的问题:
| GitHub Action 同步 | 本镜像站 + 本地测速 | |
|---|---|---|
| 接入成本 | 每个镜像都要配 workflow | 改一次 daemon.json |
| 更新延迟 | 看同步频率,通常几小时 | 实时(原站有新版就能拉) |
| 镜像范围 | 只有同步过的才能拉 | Docker Hub 任意镜像 |
| 维护 | Action 可能挂、配额可能用完 | 无需维护 |
| 慢了怎么办 | 只能换个镜像再同步 | 重测换 IP |
对大多数场景,一个稳定的镜像站 + 本地测速才是一劳永逸的方案。镜像加不加新的不用管、Action 失不失败不用管,真的慢了就重测一次 IP,半分钟的事。
配置步骤
接入超简单,三步:
1. 编辑 Docker 配置
1 | sudo mkdir -p /etc/docker |
2. 写入镜像源
1 | { |
3. 重启 Docker
1 | sudo systemctl daemon-reload |
完成后执行 docker info,输出底部能看到 Registry Mirrors 里列出本站域名就是生效了。
补充说明
- 本站不限速、不限注册、完全免费,且永远不打算收费。
latest标签不缓存,所以docker pull xxx:latest永远拉的是真实最新版。- 带具体 tag 的镜像(比如
nginx:1.25)可能有最多 1 小时的缓存延迟,符合 Docker Hub 自身的惯例。 - 服务端不记录单个用户的拉取历史,只做聚合的匿名使用统计。
遇到问题
拉取卡住 / 超时?
先本地测速、绑定 hosts。90% 的”卡住”是网络问题而不是服务问题。
想贡献配额?
本站接受用户贡献 Docker Hub 的登录凭证(推荐用只读 PAT),贡献后会自动加入共享 token 池,1 小时后自动清除。详见站内 /submit 页面。
想自己部署一套?
完整的架构、Nginx 配置、CF Worker 代码都是开放的,自建门槛不高。核心思路就是本说明里讲的三件事:分层缓存、CDN 兜底、引导用户本地优选。
一句话总结:能拉的镜像站一抓一大把,能让你拉得飞快的没几个。本站做的事,就是把”拉得飞快”的方法论讲清楚、把基础设施准备好。
效果
高速下载

