linux下配置docker国内镜像加速器只需修改/etc/docker/daemon.json,填入合法json格式的registry-mirrors数组(如["https://docker.xuanyuan.me", "https://hub-mirror.c.163.com", "https://mirrors.tencent.com"]),保存后执行sudo systemctl daemon-reload && sudo systemctl restart docker即可生效,该配置仅对docker hub官方镜像有效。

直接改 /etc/docker/daemon.json 就行,别动其他地方
Linux 下配置 Docker 国内镜像加速器,核心就是修改 Docker 守护进程的配置文件 /etc/docker/daemon.json。这个文件默认可能不存在,你得自己创建;如果存在但内容为空或格式不对,Docker 启动会失败。配置生效后,所有 docker pull 命令(只要拉的是 Docker Hub 上的镜像)都会自动走你填的镜像源,不需要改命令、也不需要重启客户端。
- 先确保 Docker 已安装且正在运行:
sudo systemctl is-active docker应返回active - 创建或编辑配置文件:
sudo mkdir -p /etc/docker && sudo nano /etc/docker/daemon.json - 填入合法 JSON,
registry-mirrors必须是数组,哪怕只写一个地址也要加方括号:{ "registry-mirrors": ["https://docker.xuanyuan.me"] } - 保存后重载并重启:
sudo systemctl daemon-reload && sudo systemctl restart docker
docker info 看不到镜像源?多半是 JSON 格式错了
执行 docker info | grep "Registry Mirrors" 没输出,或者报错说 failed to load config,90% 是 daemon.json 语法不合法。JSON 不允许注释、末尾不能有逗号、字符串必须用双引号、布尔值不能写成 true 以外的形式。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 验证 JSON 是否合法:
sudo jq . /etc/docker/daemon.json(没装jq就用python3 -m json.tool /etc/docker/daemon.json) - 常见错误:把
https://xxx.mirror.aliyuncs.com写成http://(Docker 强制要求 HTTPS) - 另一个坑:用了已失效的地址,比如某些老教程里的
https://registry.docker-cn.com,2026 年早已不可用
推荐填多个镜像源,别只靠一个
Docker 会按数组顺序依次尝试每个镜像源,第一个能响应的就用它。单点故障风险高,尤其国内镜像源变动频繁——今天能 ping 通,明天可能 DNS 解析失败或返回 503。填多个不同服务商的地址,能显著提升拉取成功率。
- 2026 年 9 月实测可用的几个地址(可直接复制):
["https://docker.xuanyuan.me", "https://hub-mirror.c.163.com", "https://mirrors.tencent.com"]
- 阿里云地址需登录控制台获取专属 ID,不建议新手用;网易和腾讯源无需认证,开箱即用
- 注意:这些地址只对
nginx、ubuntu、redis这类直接从 Docker Hub 拉的镜像有效;ghcr.io/xxx或私有仓库镜像不受影响
拉镜像还是慢?先确认是不是镜像源在起作用
不是所有“慢”都该怪镜像源。第一次拉某个冷门镜像时,加速器本地没缓存,它得回源 Docker Hub 拉,速度和直连差不多;只有第二次再拉同一镜像,才能明显感受到加速效果。另外,docker pull 卡在 Waiting 阶段,大概率是 manifest 请求失败,而不是层下载慢。
- 查日志确认请求路径:
sudo journalctl -u docker --since "1 hour ago" | grep -i "mirror\|registry" - 手动测试镜像源是否可达:
curl -I https://docker.xuanyuan.me/v2/应返回200 OK或401 Unauthorized(说明服务在线) - 如果拉
mysql:8.0慢,但拉alpine:latest很快,说明不是配置问题,而是 mysql 镜像层多、体积大,且部分层可能未被缓存










