首页 / Docker 入门教程 / 配置镜像加速

Docker 入门教程

配置镜像加速

本教程共 25 篇 · 第 5 篇 · 更新于 2026-07-26 · 约 7 分钟阅读

DockerDocker 入门教程镜像加速daemon.jsonregistry-mirrors国内镜像源

5. 配置镜像加速

本节目标:搞清楚国内拉镜像为什么慢,学会配置镜像加速,掌握当前可用的加速源,学完你拉镜像能从「卡半天」变成「秒下」。

为什么需要配加速

Docker 默认从 Docker Hub(registry-1.docker.io)拉镜像,服务器在国外。国内访问它,经常是速度慢、超时、甚至直接连不上。

更要命的是 Docker Hub 对匿名用户有限流:每六小时按 IP 限制拉取次数,超了就返回 429 Too Many Requests。团队里几个人共用一个出口 IP,很容易撞到限流墙。

解决办法是配置「镜像加速器」(registry mirror)。原理很简单:让 Docker 去访问一个国内的代理服务器,由它代为拉取并缓存 Docker Hub 的镜像。配置好之后,你敲的 docker pull nginx 命令不用改,Docker 会自动走加速器。

2026 年还能用的加速源

镜像加速这东西,时效性很强—经常有源今天能用、明天就关。下面这份清单是 2026 年 6 月实测可用的,建议优先选这些。

加速地址名称类型说明
https://docker.xuanyuan.me轩辕镜像公益免费全平台可用,个人首选
https://docker.1ms.run毫秒镜像商业稳定性好,企业推荐
https://docker.m.daocloud.ioDaoCloud公益老牌服务,适合旧项目
https://atomhub.openatom.cnAtomHub官方公益仅可信基础镜像,安全场景用
Warning

这些源已经失效,别再配了:中科大 USTC、清华 TUNA、网易 163 已停止同步 Docker Hub;阿里云公共加速器不绑定账号无效;dockerhub.icudockerproxy.cndockerpull.com 等也已关闭或报错。网上很多老教程还在推这些,照抄会踩坑。

配置时有几个通用规矩:

  1. 地址末尾不要加斜杠 /
  2. 一次配 2-3 个源做容灾,某个挂了自动切下一个。
  3. 建议保留官方源 https://registry-1.docker.io 兜底,万一加速源都没这个镜像,还能回源拉。

Linux 上配置

Linux 下通过编辑 /etc/docker/daemon.json 文件来配置。这个文件控制守护进程的各项参数,镜像加速就写在 registry-mirrors 字段里。

  1. 创建配置目录(一般已存在):

    sudo mkdir -p /etc/docker
  2. 写入配置:

    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": [
        "https://docker.xuanyuan.me",
        "https://docker.1ms.run",
        "https://registry-1.docker.io"
      ]
    }
    EOF
  3. 重载配置并重启 Docker:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
Note

daemon.json 是严格的 JSON 格式,多一个逗号、少一个引号都会让守护进程启动失败。改完如果 systemctl restart docker 报错,先用 sudo dockerd --validate 检查配置语法。

Docker Desktop 上配置

Desktop 没有直接编辑 daemon.json 的入口,但本质一样,只是换成了图形界面。

  1. 打开 Docker Desktop,点右上角齿轮进入 Settings

  2. 左侧选 Docker Engine

  3. 在 JSON 编辑框里加上 registry-mirrors 字段:

    {
      "registry-mirrors": [
        "https://docker.xuanyuan.me",
        "https://docker.1ms.run",
        "https://registry-1.docker.io"
      ],
      "features": {
        "buildkit": true
      }
    }
  4. 点右下角 Apply & Restart

Desktop 会把这个配置写进它自己的 daemon.json,重启后生效。

验证加速是否生效

配置完,用 docker info 检查。重点看 Registry Mirrors 这一段:

docker info

输出里应该能看到你配的地址:

 Registry Mirrors:
  https://docker.xuanyuan.me/
  https://docker.1ms.run/
  https://registry-1.docker.io/

看到了,说明配置已生效。再实际拉一个镜像测速度:

docker pull nginx:alpine

如果速度明显变快、不再卡顿,加速就配好了。

Tip

想快速验证某个源通不通,不用改配置,可以直接在镜像名前加源地址试拉(注意要带 library/ 前缀):docker pull docker.xuanyuan.me/library/nginx:alpine。能拉下来说明这个源可用。

配置不生效怎么办

遇到加速没起作用,按这几步排查:

  1. docker info 里看不到镜像源:多半是 daemon.json 语法错了,或者没重启 Docker。用 sudo dockerd --validate 查语法,确认重启过服务。
  2. 配置了还是慢:可能是某个源临时抽风。换一个源试试,或者用上面说的「应急指定源」方式直接验证。
  3. 报 TLS / 证书错误:确认地址是 https 开头、末尾没斜杠;系统时间是否准确,时间偏差大会导致证书校验失败;必要时更新 CA 证书:sudo apt install ca-certificates
  4. 频繁 429:说明还是走了官方源被限流。检查配置是否真的生效,或对 docker.io 执行 docker login 提升配额。
Warning

第三方公共加速器只适合拉公共镜像。如果你要拉的是含公司代码的私有镜像,千万别走公共加速器—等于把代码传给第三方。私有镜像请用自建 Harbor 或云厂商的私有仓库。

小结

镜像加速是国内用 Docker 的「必装项」。核心就两步:把可用源写进 daemon.jsonregistry-mirrors,重启服务。Linux 编辑文件,Desktop 用图形界面,效果一样。

记住镜像源会变动,配了不代表永远能用,遇到拉不动先怀疑是不是源挂了。配好加速,下一节我们正式跑起第一个容器。