docker解析DNS失败问题

 更新时间:2025年04月10日 08:35:20   作者:DeepClick  
这篇文章主要介绍了docker解析DNS失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题现象

我之前在docker里部署的容器,今天突然访问不了了,一开始我以为是容器的问题,将容器restart,销毁重建,都没有解决。

最后准备重启docker service,在重启之前,看了一眼docker的状态:

ck94 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-04-25 10:06:23 CST; 1 months 3 days ago
     Docs: https://docs.docker.com
 Main PID: 2615 (dockerd)
    Tasks: 172
   Memory: 8.3G
   CGroup: /system.slice/docker.service
           ├─ 2615 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─ 5610 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 55433 -container-ip 172.17.0.3 -container-port 5432
           ├─ 5627 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 55433 -container-ip 172.17.0.3 -container-port 5432
           ├─ 5671 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.17.0.4 -container-port 3000
           ├─ 5698 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3000 -container-ip 172.17.0.4 -container-port 3000
           ├─21981 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9200 -container-ip 172.20.0.2 -container-port 9200
           ├─21994 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9200 -container-ip 172.20.0.2 -container-port 9200
           ├─23558 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 10086 -container-ip 172.20.0.3 -container-port 9000
           ├─23575 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 10086 -container-ip 172.20.0.3 -container-port 9000
           ├─23624 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 38080 -container-ip 172.20.0.4 -container-port 8080
           ├─23640 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 38080 -container-ip 172.20.0.4 -container-port 8080
           ├─26535 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 49001 -container-ip 172.17.0.2 -container-port 9001
           ├─26552 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 49001 -container-ip 172.17.0.2 -container-port 9001
           ├─26602 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 49000 -container-ip 172.17.0.2 -container-port 9000
           ├─26620 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 49000 -container-ip 172.17.0.2 -container-port 9000
           ├─39170 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 5601 -container-ip 172.20.0.5 -container-port 5601
           └─39182 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 5601 -container-ip 172.20.0.5 -container-port 5601

May 29 09:24:38 ck94 dockerd[2615]: time="2023-05-29T09:24:38.161269040+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:26:22 ck94 dockerd[2615]: time="2023-05-29T09:26:22.679628216+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:26:27 ck94 dockerd[2615]: time="2023-05-29T09:26:27.683446445+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:27:38 ck94 dockerd[2615]: time="2023-05-29T09:27:38.328922576+08:00" level=warning msg="ShouldRestart failed, container will not be restarted" container=4af5eb860cbfea8961372e...
May 29 09:34:18 ck94 dockerd[2615]: time="2023-05-29T09:34:18.236630475+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:35:02 ck94 dockerd[2615]: time="2023-05-29T09:35:02.949012103+08:00" level=warning msg="ShouldRestart failed, container will not be restarted" container=9969a986040d0f91bc80d9...
May 29 09:36:23 ck94 dockerd[2615]: time="2023-05-29T09:36:23.261658623+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:37:48 ck94 dockerd[2615]: time="2023-05-29T09:37:48.429139761+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:39:50 ck94 dockerd[2615]: time="2023-05-29T09:39:50.051518136+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
May 29 09:43:18 ck94 dockerd[2615]: time="2023-05-29T09:43:18.733473159+08:00" level=warning msg="[resolver] failed to read from DNS server: 223.6.6.6:53, query: ;elasticse... i/o timeout"
Hint: Some lines were ellipsized, use -l to show in full.

里面报大量的DNS解析错误。

我尝试在不同机器上curl该容器的url,在本机执行:

ck94 ~]# curl http://192.168.101.94:49001/browser
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="/" rel="external nofollow" /><meta content="width=device-width,initial-scale=1" name="viewport"/><meta content="#081C42" media="(prefers-color-scheme: light)" name="theme-color"/><meta content="#081C42" media="(prefers-color-scheme: dark)" name="theme-color"/><meta content="MinIO Console" name="description"/><meta name="minio-license" content="agpl" /><link href="./styles/root-styles.css" rel="external nofollow"  rel="stylesheet"/><link href="./apple-icon-180x180.png" rel="external nofollow"  rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="external nofollow"  rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="external nofollow"  rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="external nofollow"  rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="external nofollow"  rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" rel="external nofollow"  rel="mask-icon"/><title>MinIO Console</title><script defer="defer" src="./static/js/main.5efdfa93.js"></script><link href="./static/css/main.57e739f5.css" rel="external nofollow"  rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="preload"><img src="./images/background.svg"/> <img src="./images/background-wave-orig2.svg"/></div><div id="loader-block"><img src="./Loader.svg"/></div></div></body></html>

是没有问题的。

我在其他机器上执行:

chenyanchang@chenyanchangdeMacBook-Pro ~ % curl http://192.168.101.94:49001/browser
curl: (7) Failed to connect to 192.168.101.94 port 49001: Operation timed out

解决方案

重启docker服务,重启docker0网卡:

service docker stop
ip link set dev docker0 down
ip link set dev docker0 up
service docker start

再次查看, 问题解决:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker打包node项目的过程讲解

    docker打包node项目的过程讲解

    今天小编就为大家分享一篇关于docker打包node项目的过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 使用docker部署dubbo项目的方法步骤

    使用docker部署dubbo项目的方法步骤

    这篇文章主要介绍了使用docker部署dubbo项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Docker 使用 Supervisor 来管理进程操作

    Docker 使用 Supervisor 来管理进程操作

    这篇文章主要介绍了Docker 使用 Supervisor 来管理进程操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker安装分布式vLLM的实现步骤

    Docker安装分布式vLLM的实现步骤

    本文主要介绍了Docker使用vLLM库进行分布式推理和服务部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    docker 使用CMD或者ENTRYPOINT命令同时启动多个服务

    这篇文章主要介绍了docker 使用CMD或者ENTRYPOINT命令同时启动多个服务,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker内部容器之间的端口访问实现方法

    docker内部容器之间的端口访问实现方法

    alpine-client 与 alpine-server 两容器,前者访问后者监听之端口,以此探析 Docker 内部容器间端口访问机制,这篇文章主要介绍了如何实现docker内部容器之间的端口访问,需要的朋友可以参考下
    2024-04-04
  • 使用Docker部署Tomcat的实现示例

    使用Docker部署Tomcat的实现示例

    在本地编写好了Spring项目,为了实现能够随时地访问,所以需要将项目部署到服务器,本文主要介绍了使用Docker部署Tomcat的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • 详解如何用docker安装laravel开发环境

    详解如何用docker安装laravel开发环境

    本篇文章主要介绍了详解如何用docker安装laravel开发环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • docker python如何实现打包的方法

    docker python如何实现打包的方法

    这篇文章主要介绍了docker 打包python实现方法的相关资料,这里说明如今实现,需要的朋友可以参考下
    2016-12-12
  • 关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法

    关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法

    这篇文章主要介绍了关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论