告别Docker请求超时之一步步排查与详细解决方案

 更新时间:2025年02月08日 09:02:17   作者:Crime_man  
在Ubuntu系统上安装Docker后,运行docker run hello-world时遇到连接超时问题,下面这篇文章主要介绍了Docker请求超时一步步排查与详细解决方案的相关资料,需要的朋友可以参考下

docker运行系统

系统:Ubuntu

问题现象

在ubuntu系统上面,安装完Docker后,尝试运行 docker run hello-world 来测试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).
See 'docker run --help'.

解决方案

对于这种连接超时的问题,网上有很多的解决方案,我也根据网上的解决方案尝试了,但是有些处理方案不起作用,也在下面处理方案列出,希望对你们有所帮助。

1. 修改docker镜像源 (本地修改后不行)

使用命令 sudo vim /etc/docker/daemon.json (若文件不存在,会自动创建一个新的daemon.json文件),替换文件中的镜像源信息

{
    "registry-mirrors": ["https://docker.registry.cyou",
      "https://docker-cf.registry.cyou",
      "https://dockercf.jsdelivr.fyi",
      "https://docker.jsdelivr.fyi",
      "https://dockertest.jsdelivr.fyi",
      "https://mirror.aliyuncs.com",
      "https://dockerproxy.com",
      "https://mirror.baidubce.com",
      "https://docker.m.daocloud.io",
      "https://docker.nju.edu.cn",
      "https://docker.mirrors.sjtug.sjtu.edu.cn",
      "https://docker.mirrors.ustc.edu.cn",
      "https://mirror.iscas.ac.cn"]
  }

修改后需重新docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

检查是否生效:查看docker系统信息 docker info,查看 registry mirror 中刚配置的内容地址。

2. 修改DNS服务配置

  • 查看DNS服务配置,/etc/resolv.conf
cat /etc/resolv.conf
  • 查看nameserver后面IP地址信息,或者显示的IP地址有问题,可以尝试修改该文件。
nameserver 114.114.114.114
nameserver 8.8.8.8

3. 获取可用的镜像源(成功拉取镜像源)

以上方法都不起作用后,找了很久,终于找到一个可用的镜像源

https://docker.rainbond.cc/

将上述信息添加到damon.json文件中,然后重启服务,docker run hello-world 尝试拉取镜像,成功。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:d211f485f2dd1dee407a80973c8f129f00d54604d2c90732e8e320e5038a0348
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

总结:

在这篇博客中,提供了一系列处理Docker拉取镜像超时的实用的解决方案。我们首先分析了网络连接问题、DNS配置错误以及代理设置等可能导致该错误的因素。接着,我们详细讲解了如何通过调整Docker配置文件、修改DNS选项以及检查系统代理设置等方法来解决这一问题。
通过这些步骤,相信你已经能够有效地解决“Client.Timeout exceeded while awaiting headers”错误,让你的Docker容器顺利运行。掌握这些技巧,不仅能帮助你处理当前的问题,也为你在未来面对类似挑战时提供了有力的工具。

希望这篇教程对你有所帮助,助你在Docker的使用过程中更加得心应手。谢谢阅读,期待你的反馈!

到此这篇关于Docker请求超时排查与详细解决方案的文章就介绍到这了,更多相关Docker请求超时排查与解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker可视化管理工具portainer忘记密码重置教程的实现

    docker可视化管理工具portainer忘记密码重置教程的实现

    本文主要介绍了docker可视化管理工具portainer忘记密码重置教程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • docker-compose的build使用方式

    docker-compose的build使用方式

    这篇文章主要介绍了docker-compose的build使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker容器harbor私有仓库部署和管理

    Docker容器harbor私有仓库部署和管理

    这篇文章主要介绍了Docker容器harbor私有仓库部署和管理,文章围绕主题展开详细的内容介绍,具有一定的的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Docker学习笔记之Docker部署Java web系统

    Docker学习笔记之Docker部署Java web系统

    这篇文章主要介绍了Docker学习笔记之Docker部署Java web系统,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • docker部署mysql+phpmyadmin的3种方式

    docker部署mysql+phpmyadmin的3种方式

    本文介绍了三种访问phpmyadmin的方法:link、network和docker-compose.yml,docker-compose.yml文件内容为:打开浏览器,输入localhost:8080即可访问phpmyadmin界面,帐号密码都是root
    2024-12-12
  • Docker部署MySQL8集群(一主二从)的实现步骤

    Docker部署MySQL8集群(一主二从)的实现步骤

    本文主要介绍了Docker部署MySQL8集群,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题

    解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题

    这篇文章主要介绍了解决虚拟机挂起后再恢复后Docker部署的应用无法连接问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 如何使用docker搭建upload-labs

    如何使用docker搭建upload-labs

    upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场,旨在帮助大家对上传漏洞有一个全面的了解,本文给大家介绍使用 Docker 搭建 upload-labs 的步骤,感兴趣的朋友一起看看吧
    2024-03-03
  • 基于Docker的Mysql主备搭建的实现步骤

    基于Docker的Mysql主备搭建的实现步骤

    本文主要介绍了基于Docker的Mysql主备搭建的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • docker配置镜像Docker pull时报错:https://registry-1.docker.io/v2/问题

    docker配置镜像Docker pull时报错:https://registry-1.docker.io/v

    Docker拉镜像报错的原因可能是网络问题、认证问题、注册中心URL不正确或注册中心服务不可用,解决方法包括重载和重启Docker服务
    2026-01-01

最新评论