Skip to content

镜像加速配置

由于网络原因,从 Docker Hub 拉取镜像速度较慢,配置镜像加速器可以显著提升下载速度。

可用的镜像加速地址

加速器地址说明
DaoCloudhttps://docker.m.daocloud.io稳定,推荐
网易云https://hub-mirror.c.163.com较稳定
阿里云需要登录获取专属地址稳定,需注册
腾讯云https://mirror.ccs.tencentyun.com腾讯云内网免费

注意:部分镜像加速器会不定期失效,可配置多个作为备用。阿里云镜像加速需前往 阿里云容器镜像服务 登录获取个人专属加速地址。

Linux 配置方法

编辑 /etc/docker/daemon.json(如文件不存在则创建):

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

# 重启 Docker 使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置是否生效:

bash
docker info | grep -A 5 "Registry Mirrors"

Docker Desktop 配置方法

Windows / macOS

  1. 打开 Docker Desktop
  2. 点击右上角齿轮图标 → Docker Engine
  3. 在 JSON 配置中添加 registry-mirrors
json
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu"
  ],
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false
}
  1. 点击 Apply & restart

获取阿里云专属镜像加速

  1. 登录 阿里云容器镜像服务
  2. 在左侧菜单选择 镜像工具镜像加速器
  3. 复制专属加速器地址(格式:https://xxxx.mirror.aliyuncs.com
bash
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://你的专属ID.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

验证加速效果

bash
# 拉取一个镜像测试速度
time docker pull nginx:alpine

# 查看镜像拉取来源
docker info | grep "Registry Mirrors" -A 5

完整 daemon.json 配置参考

生产环境推荐的完整配置:

json
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "data-root": "/var/lib/docker",
  "live-restore": true,
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 5
}
配置项说明
registry-mirrors镜像加速地址列表
log-driver日志驱动,推荐 json-file
log-opts日志选项,限制单个日志文件大小和数量
storage-driver存储驱动,推荐 overlay2
live-restore守护进程重启时保持容器运行
max-concurrent-downloads最大并发下载数

常见问题

配置后速度没有变化

  1. 确认 daemon.json 语法正确(有效的 JSON)
  2. 确认执行了 systemctl daemon-reload && systemctl restart docker
  3. 尝试换一个加速地址
bash
# 验证 JSON 语法
python3 -m json.tool /etc/docker/daemon.json

部分镜像无法加速

镜像加速器只加速 Docker Hub 的镜像,其他仓库(如 gcr.ioghcr.io)需要单独配置代理或使用对应的国内镜像站。

bash
# 例如使用 DaoCloud 的 gcr.io 代理
docker pull gcr.m.daocloud.io/google-containers/pause:3.1

daemon.json 配置错误导致 Docker 无法启动

bash
# 查看详细错误信息
sudo journalctl -u docker.service -n 50
# 或
sudo dockerd --debug

# 临时备份并删除错误配置
sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak
sudo systemctl start docker

总结

配置镜像加速是国内使用 Docker 的必备操作,可以将镜像拉取速度从几 KB/s 提升到几 MB/s 甚至更高。推荐配置多个加速地址作为备用,并设置合理的日志大小限制。