Docker 镜像加速器配置完整指南
- 检查当前 DNS 设置
bash
查看当前 DNS 配置
cat /etc/resolv.conf
resolvectl status
- 修复 DNS 配置(如无法解析域名)
bash
停止并禁用 systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
删除原有 resolv.conf
sudo rm /etc/resolv.conf
创建新的 DNS 配置(使用公共 DNS)
sudo tee /etc/resolv.conf <<-‘EOF’
nameserver 223.5.5.5
nameserver 114.114.114.114
nameserver 8.8.8.8
options timeout:2 attempts:3 rotate
EOF
锁定文件防止被修改
sudo chattr +i /etc/resolv.conf
测试 DNS 解析
nslookup docker.com 223.5.5.5
ping -c 3 docker.com
- 配置 Docker 镜像加速器
bash
创建或编辑 Docker 配置文件
sudo vi /etc/docker/daemon.json
写入以下配置(使用已验证可用的 DaoCloud 源):
json
{
“registry-mirrors”: [
“https://docker.m.daocloud.io”,
“https://docker.nju.edu.cn”,
“https://dockerproxy.com”
],
“dns”: [“223.5.5.5”, “114.114.114.114”, “8.8.8.8”],
“max-concurrent-downloads”: 10,
“max-concurrent-uploads”: 10,
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “10m”,
“max-file”: “3”
},
“iptables”: false,
“experimental”: true
}
- 重启 Docker 使配置生效
bash
重新加载配置并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
验证配置是否生效
docker info | grep -A 5 “Registry Mirrors”
- 测试镜像拉取
bash
测试拉取镜像(通过 DaoCloud 源)
docker pull docker.m.daocloud.io/library/hello-world:latest
测试拉取 postgres 镜像
docker pull docker.m.daocloud.io/library/postgres:16-alpine
测试 docker-compose 构建
cd /your-project-directory
docker-compose up -d –build
- 备用方案:修改 docker-compose.yml
如果默认镜像拉取失败,可直接使用镜像源地址:
yaml
services:
postgres:
image: docker.m.daocloud.io/library/postgres:16-alpine
# … 其他配置
- 手动拉取镜像的备用方法
bash
在其他可访问 Docker Hub 的机器上
docker pull postgres:16-alpine
docker save postgres:16-alpine -o postgres.tar
传输到目标服务器
scp postgres.tar user@server-ip:/tmp/
在目标服务器上导入
docker load -i /tmp/postgres.tar
docker tag postgres:16-alpine postgres:16-alpine
- 常用镜像源地址(2026年可用)
json
{
“registry-mirrors”: [
“https://docker.m.daocloud.io”, // DaoCloud(推荐,已验证可用)
“https://docker.nju.edu.cn”, // 南京大学
“https://dockerproxy.com”, // Docker 代理
“https://docker.mirrors.ustc.edu.cn”, // 中科大(可能不稳定)
“https://hub-mirror.c.163.com” // 网易(可能不稳定)
]
} - 故障排查命令
bash
测试镜像源连通性
curl -I https://docker.m.daocloud.io/v2/
查看 Docker 日志
sudo journalctl -u docker -f
检查防火墙
sudo iptables -L -n | grep docker
测试端口连通性
nc -zv registry-1.docker.io 443
telnet registry-1.docker.io 443
这个配置流程已经在 Ubuntu 24.04 服务器上验证通过,DaoCloud 源目前稳定可用。保存这份指南,以后在新服务器上配置 Docker 时直接按步骤执行即可。