解决Docker报错“Error response from daemon: Get “https://registry-1.docker.io/v2/”: net ......的问题

This note was originally clipped from https://zhuanlan.zhihu.com/p/30102801684

以下是参考CSDN博客内容整理的完整解决步骤,原始链接如下:https://blog.csdn.net/wufaqidong1/article/details/144476399?ops_request_misc=&request_id=&biz_id=102&utm_term=docker: Error response from da&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-144476399.142^v101^pc_search_result_base7

用于解决Docker报错“Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)”的问题:

问题描述

在使用Docker进行镜像拉取时,可能会遇到以下错误:

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).

这个错误通常是由于Docker客户端与Docker Hub连接超时导致的,可能是因为网络问题或者Docker Hub服务器响应缓慢。


解决步骤

1. 备份原始配置文件

在修改Docker配置之前,建议先备份原始配置文件。运行以下命令:

cp /etc/docker/daemon.json{,.bak}

2. 修改或删除daemon.json文件

  • 如果当前daemon.json文件中包含错误的配置,可能会导致连接问题。可以尝试删除当前的daemon.json文件: bash sudo rm -f /etc/docker/daemon.json
  • 然后创建一个新的daemon.json文件,并添加镜像加速器配置。以下是推荐的镜像加速器地址: bash sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.1panel.live/" ] } EOF 你可以根据自己的网络环境选择合适的镜像加速器,或者使用其他可用的加速器地址。

3. 重新加载配置并重启Docker

  • 重新加载Docker守护进程的配置: bash sudo systemctl daemon-reload
  • 重启Docker服务以使配置生效: bash sudo systemctl restart docker

4. 测试镜像拉取

  • 重新尝试拉取Docker镜像,例如: bash docker pull hello-world 如果镜像能够正常拉取,说明问题已经解决。

其他注意事项

  1. 网络连接检查
    确保你的网络连接正常,能够访问Docker Hub或其他镜像加速器地址。
  2. 防火墙或代理设置
    如果你处于公司内网或使用了代理服务器,可能需要配置Docker的代理设置。编辑daemon.json文件,添加代理配置: json { "registry-mirrors": ["https://docker.1ms.run"], "proxies": { "httpProxy": "http://your-proxy-server:port", "httpsProxy": "http://your-proxy-server:port", "noProxy": "localhost,127.0.0.1" } }
  3. Docker版本更新
    如果问题仍然存在,可以尝试更新Docker到最新版本: bash sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
  4. 查看日志
    如果问题仍未解决,可以通过查看Docker日志获取更多信息: bash sudo journalctl -u docker.service

按照以上步骤操作后,应该可以解决Docker连接超时的问题。如果还有其他问题,可以提供更多详细信息以便进一步排查。