docker拉取镜像出错:Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded
一步一步排查:
- 确认网络连通性
curl -v https://registry-1.docker.io/v2/
看是否能够连通。如果卡住、超时或者报错,说明问题是网络层的问题。 - 是否被代理、GFW 阻断?
如果你在中国大陆,访问 Docker Hub 很可能是被墙了。
✅ 解决办法:配置镜像加速器
编辑 /etc/docker/daemon.json,添加如下内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
或者用阿里云/网易的镜像加速器,比如:
{
"registry-mirrors": ["https://<你的阿里云ID>.mirror.aliyuncs.com"]
}
然后重启 Docker:
sudo systemctl daemon-reexec
sudo systemctl restart docker
- 测试 DNS 是否正常解析
nslookup registry-1.docker.io
或者:
dig registry-1.docker.io
如果没有 IP 地址返回,说明 DNS 配置可能有问题。
✅ 解决方法:设置公共 DNS
编辑 Docker 的 DNS 配置 /etc/docker/daemon.json:
{
"dns": ["8.8.8.8", "1.1.1.1"]
}
然后重启 Docker。
- 测试是否能 ping Docker Hub
ping registry-1.docker.io
注意: 一些 Docker Hub 域名不响应 ping,这是正常的,但如果出现 Network is unreachable 或者 Name or service not known,就说明网络或 DNS 出问题。 - 尝试登录
docker login
可以规避匿名用户被限速的情况。 - 确认系统时间正确
系统时间不对可能导致 TLS 握手失败:
如不正确可同步:
sudo ntpdate time.windows.com
- 如果仍不行
你也可以尝试国内镜像服务,比如:
阿里云容器镜像服务(可免费申请)
网易云镜像加速器
DaoCloud 镜像加速器