修改 /etc/docker/daemon.json 添加 registry-mirrors 字段并重启 Docker 服务即可生效;需确保 JSON 合法、地址为可用 HTTPS 加速源、执行 systemctl daemon-reload 和 restart docker,最后用 docker info 验证。
直接改 /etc/docker/daemon.json 文件,填入 registry-mirrors 字段,再重启 docker 服务即可生效。关键不是“换一个源”,而是确保它被正确加载、且指向可用的国内加速地址。
确认文件位置并创建(如不存在)
Linux 系统下,Docker 守护进程默认读取 /etc/docker/daemon.json。如果该文件不存在,可手动创建:
- 执行
sudo mkdir -p /etc/docker确保目录存在 - 用编辑器新建文件:
sudo nano /etc/docker/daemon.json - 写入合法 JSON 内容,不能有末尾逗号、单引号或中文标点
填对 registry-mirrors 字段
这个字段只影响无域名前缀的镜像拉取(例如 docker pull nginx),它会把请求自动代理到你指定的加速节点。推荐配置多个地址提高容错性:
- 阿里云镜像加速器需登录控制台获取专属 HTTPS 地址(形如
https://xxxxx.mirror.aliyuncs.com),不能直接填https://mirrors.aliyun.com - 中科大、网易、百度等公开源可直接使用:
"https://docker.mirrors.ustc.edu.cn"、"https://hub-mirror.c.163.com"、"https://mirror.baidubce.com" - 避免混用 HTTP 和 HTTPS;全部统一用 HTTPS 更稳妥
改完必须重启 Docker 才能生效
修改 JSON 文件只是写入配置,Docker 守护进程不会自动重载。必须执行两步:
-
sudo systemctl daemon-reload—— 通知 systemd 重新读取服务定义 -
sudo systemctl restart docker—— 重启守护进程,加载新配置
缺一不可。只 reload 不 restart,或只 restart 不 reload,都可能导致配置不生效。
验证是否真的起作用
运行 docker info,查找输出中的 Registry Mirrors 项:
- 如果看到你填的地址(比如
https://docker.mirrors.ustc.edu.cn),说明已加载成功 - 如果显示为空或仍是
https://registry-1.docker.io,大概率是 JSON 格式错误、路径不对,或没执行重启 - 也可以试拉一个基础镜像:
docker pull hello-world,观察速度和日志是否有加速行为


















