执行docker run **提示:Error response from daemon: Get “https://registry-1.docker.io/v2/net/request cance

📅 2026/7/31 0:19:16 👁️ 阅读次数 📝 编程学习
执行docker run **提示:Error response from daemon: Get “https://registry-1.docker.io/v2/net/request cance

docker run hello-world跑第一个镜像竟然提示链接超时取消,下载不下来,错误信息如下图:

运行Docker的机器是可以上网的,奈何docker hub 部署在国外,从国内访问会受限,整理解决方案如下:

方案一:配置国内镜像加速器(最推荐,解决访问慢/被限速)

通过修改 Docker 配置文件,让拉取请求走国内镜像代理

  • 编辑(或创建)Docker 守护进程配置文件:

bash

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.nju.edu.cn" ] } EOF

以上为目前可用的公共镜像源,也可以登录阿里云/腾讯云容器服务获取个人专属加速地址,想知道怎么获取个人专属加速地址,请看下一篇文章。

  • 重载配置并重启 Docker:

bash

sudo systemctl daemon-reload sudo systemctl restart docker

重启之后看一下docker是否重新加载配置,输入:

docker info | grep -A 5 "Registry Mirrors"

输出结果如上图所示说明配置已重新加载。

  • 3.重试命令:

bash

docker run hello-world

如果配置了公共镜像源还是不行,则可以先执行

curl -I https://docker.m.daocloud.io/v2/

看看执行后报的错误再具体分析。

方案二:检查并更换 DNS 服务器

如果配置镜像后依然超时,很可能是 DNS 无法解析registry-1.docker.io或镜像域名。

  • 测试当前 DNS 解析速度:

    bash

    time nslookup registry-1.docker.io

    如果耗时超过 2 秒或解析失败,说明 DNS 有问题。如果没有nslookup命令可以改成ping,ping -c 4 registry-1.docker.io

  • 修改系统 DNS(以 CentOS7 为例,编辑/etc/resolv.conf):

    bash

    sudo echo "nameserver 114.114.114.114" > /etc/resolv.conf sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf

    (注意:如果系统使用 NetworkManager 或 systemd-resolved,该文件重启后会被覆盖,需永久固化配置,建议先临时测试)

  • 再次重启 Docker 并重试。基本能解决问题。

最主要的解决方案还是配置国内的镜像下载加速器,配置好重启docker基本解决问题。