# Docker 国内镜像加速器配置全记录
> 适用于 Docker CE ≥ 20.10,Ubuntu / CentOS / Debian 通用,复制即可一次性通过。
---
## 1. 创建配置目录
```bash
sudo mkdir -p /etc/docker
2. 写入加速器(JSON 必须严格符合格式)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me",
"https://dislabaiot.xyz",
"https://hub.rat.dev",
"https://doublezonline.cloud",
"https://xdark.top",
"https://dockerproxy.com"
]
}
EOF
注意:
- 最后一个 URL 后面不能留逗号,否则 Docker 启动报
invalid character。 - 整个文件不要出现注释(
//或#),也不留多余空格;否则 systemd 会提示daemon.json: unexpected end of JSON input并直接导致服务失败。
3. 重载并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证是否生效
docker info | grep -A2 Mirrors
正常应出现:
Registry Mirrors:
https://docker.1ms.run/
https://docker.xuanyuan.me/
...
若列表为空,说明 JSON 语法仍错误,请回退到第 2 步重新检查。
5. 国内可用高速镜像源清单
| 序号 | 镜像地址 | 备注 |
|---|---|---|
| 1 | docker.1ms.run | 延迟低,带宽足 |
| 2 | docker.xuanyuan.me | 个人维护,更新及时 |
| 3 | dislabaiot.xyz | 教育网线路友好 |
| 4 | hub.rat.dev | 云flare 加速 |
| 5 | doublezonline.cloud | 华南移动线路优化 |
| 6 | xdark.top | 备用,偶尔抽风 |
| 7 | dockerproxy.com | 老牌代理,可用性高 |
建议一次写 3-5 个即可,Docker 会按顺序自动 failover;过多反而增加解析时间。
6. 易错点与排查技巧
-
空白符陷阱
复制网页代码时容易把行尾空格或 带进去,导致docker.service启动失败。
解决方法:cat -A /etc/docker/daemon.json若看到
^I(Tab)或$后有高亮空格,重新nano手工删除。 -
注释导致 JSON 非法
daemon.json 是纯 JSON,不支持//或#注释。想留备注请使用外部文档,文件本身必须保持标准 JSON。 -
systemd 不 reload
修改完 daemon.json 后忘记daemon-reload,Docker 依旧读取旧配置。
养成习惯:sudo systemctl daemon-reload && sudo systemctl restart docker -
代理与镜像镜同时启用
若之前配过 HTTP_PROXY,再写 registry-mirrors 不会冲突;但代理地址写错也会导致context deadline exceeded,看上去像是镜像源失效。排查时先unset HTTPS_PROXY再curl -I https://docker.1ms.run/v2/确认镜像站可达。 -
立即验证拉取速度
time docker pull hello-world第一次耗时 < 5 秒基本说明加速生效;若仍 > 30 秒,考虑换另一个镜像地址或切代理。
7. 小结
配置国内镜像加速器只需“写文件→重启→验证”三步,但 90% 的启动失败都源于 JSON 格式不合法 或 URL 带空格。
严格按照上文复制,保留逗号、不留注释、及时 daemon-reload,即可保证 Docker 守护进程正常启动并享受高速拉取体验。祝你早日摆脱 context deadline exceeded!