在京东云服务器(或其他国内云主机)上安装 Docker 后,默认拉取镜像的官方仓库地址 registry-1.docker.io 位于海外,受网络波动影响速度较慢。配置国内镜像提速是提升开发效率的关键步骤。
以下是针对 Docker CE 的标准配置流程,推荐使用阿里云或腾讯云提供的免费镜像提速器。
第一步:获取镜像提速地址
目前最常用且稳定的国内镜像源包括阿里云和腾讯云。你需要先登录对应云平台控制台获取专属提速地址。
- 阿里云:访问 阿里云容器镜像服务 -> 镜像提速 -> 复制你的专属提速地址(格式类似
https://xxxxx.mirror.aliyuncs.com)。 - 腾讯云:访问 腾讯云容器镜像服务 -> 实例列表 -> 点击实例 -> 镜像提速 -> 复制提速地址。
注意:请确保你的账号已实名认证,否则可能无法生成提速地址。
第二步:修改 Docker 配置文件
使用 root 权限编辑 Docker 的守护进程配置文件 /etc/docker/daemon.json。如果该文件不存在,则新建一个。
sudo vim /etc/docker/daemon.json
在文件中加入以下内容(将 <你的提速地址> 替换为第一步中获取的实际地址):
{
"registry-mirrors": [
"<你的提速地址>"
]
}
示例(假设你使用的是阿里云的地址):
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://<your-id>.mirror.aliyuncs.com"
]
}
提示:
- 如果已有其他配置(如
insecure-registries),请保持 JSON 语法正确,用逗号分隔不同项。- 建议同时保留中科大镜像作为备用,以防单一源失效。
- 确保 JSON 格式无误(特别是逗号的位置和花括号闭合),否则 Docker 将无法启动。
第三步:重启 Docker 服务
配置完成后,必须重启 Docker 服务使配置生效。
# 对于 systemd 系统(大多数 Linux 发行版,如 CentOS 7+, Ubuntu 16.04+)
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证配置是否生效
docker info | grep "Registry Mirrors"
如果输出中显示了你配置的提速地址,说明配置成功。
第四步:验证提速效果
尝试拉取一个大型镜像(如 nginx),观察下载速度:
docker pull nginx:latest
正常情况下,从阿里云或腾讯云的节点拉取,速度应能达到几十 MB/s,远快于直接连接国外源。
常见问题与替代方案
1. 配置后依然很慢怎么办?
- 检查 DNS:有时网络解析问题会导致连接超时。可以尝试修改
/etc/resolv.conf,添加公共 DNS(如8.8.8.8或114.114.114.114),但需注意部分云厂商限制自定义 DNS。 - 更换源:如果当前使用的阿里云/腾讯云地址不稳定,可以切换为中科大(USTC)、清华大学或网易的公共镜像源(这些不需要注册账号,但高峰期可能拥堵)。
- 中科大源:
https://docker.mirrors.ustc.edu.cn - 清华源:
https://docker.mirrors.tuna.tsinghua.edu.cn
- 中科大源:
- HTTPS 证书问题:某些旧版本的 Docker 可能对 HTTPS 证书校验严格,如果遇到证书错误,可在
daemon.json中添加"insecure-registries": ["<提速地址域名>"](仅限测试环境,生产环境慎用)。
2. 关于 containerd (Docker 23.0+ 版本)
较新版本的 Docker 默认使用 containerd 作为底层运行时。虽然上述 daemon.json 配置通常仍然有效,但如果遇到拉取失败,也可以单独配置 containerd 的提速:
- 找到配置文件
/etc/containerd/config.toml。 - 在
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]下添加对应的 mirror 配置(格式略有不同,需参考 containerd 文档)。 - 执行
sudo systemctl restart containerd。
通常情况下,优先保证 docker daemon.json 配置正确即可解决绝大多数问题。
CLOUD技术笔记