首页 教程 开发工具 告别Docker请求超时:一步步排查与解决方案

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

目录

  • docker运行系统
  • 问题现象
  • 解决方案
    • 1. 修改docker镜像源 (本地修改后不行)
    • 2. 修改DNS服务配置
    • 3. 获取可用的镜像源(成功拉取镜像源)

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服务配置

  1. 查看DNS服务配置,/etc/resolv.conf

cat /etc/resolv.conf

  1. 查看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的使用过程中更加得心应手。谢谢阅读,期待你的反馈!😁

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.15k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.22k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.13k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.08k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  483

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  310

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。