需配置国内镜像加速器解决超时问题:先确认Docker运行正常,再编辑/etc/docker/daemon.json添加阿里云等加速地址,重载并重启服务,最后验证Registry Mirrors生效。

在 Linux 上使用 Docker 拉取镜像时遇到超时(如 Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection),通常是因为默认的 Docker Hub 国外源访问慢或被限速。解决核心是配置国内镜像加速器,同时排查网络与 Docker 服务状态。
确认 Docker 正常运行并检查当前 registry 配置
先确保 Docker 守护进程已启动:
systemctl is-active docker —— 应返回 active
docker info | grep "Registry Mirrors" —— 查看是否已有加速器配置
若输出为空或只有 [],说明未配置加速源,需手动添加。
配置国内 Docker 镜像加速器(推荐阿里云、腾讯云)
编辑或新建 Docker 守护进程配置文件:
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
填入以下内容(以阿里云为例,登录 阿里云容器镜像服务 可获取专属加速地址):
{
"registry-mirrors": ["https://your-code.mirror.aliyuncs.com"]
}
⚠️ 注意:
- 替换 your-code 为你的实际加速域名(如 u4k7q8z9)
- 地址必须以 https:// 开头,末尾不加斜杠
- 支持多个镜像源,用逗号分隔(例如同时加腾讯云:"https://xxx.mirror.tencent.com", "https://xxx.mirror.aliyuncs.com")
重载配置并重启 Docker 服务
保存 daemon.json 后执行:
- sudo systemctl daemon-reload
- sudo systemctl restart docker
- sudo systemctl status docker —— 确认无报错且状态为 active
验证是否生效:
docker info | grep "Registry Mirrors" -A 1 —— 应显示你配置的地址
再试拉取镜像:docker pull ubuntu:22.04,速度明显提升即成功。
其他常见补充措施
若仍失败,可进一步排查:
-
检查 DNS 解析:运行 nslookup registry-1.docker.io,若超时或无响应,临时改用
8.8.8.8或114.114.114.114(修改/etc/resolv.conf或 NetworkManager 配置) -
跳过 TLS 验证(仅测试环境):不推荐生产使用,但可临时排除证书问题 —— 在
daemon.json中加"insecure-registries": ["registry-1.docker.io"](注意:Docker Hub 不支持 insecure 模式,此条仅适用于私有 registry) -
代理设置(如公司内网):若走 HTTP 代理,需在
/etc/systemd/system/docker.service.d/http-proxy.conf中配置Environment="HTTP_PROXY=http://proxy.example.com:8080",再重载 systemd 并重启 docker


















