docker 解析DNS失败

简介: 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="/"/><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="stylesheet"/><link href="./apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" 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="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

再次查看, 问题解决:


推荐一个零声学院免费教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,

fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,

TCP/IP,协程,DPDK等技术内容,点击立即学习: C/C++Linux服务器开发/高级架构师

目录
相关文章
|
6月前
|
域名解析 存储 网络协议
域名解析的终极指南:从基础到进阶,彻底搞懂 DNS 记录
域名解析是网站运行的基础,正确配置DNS记录至关重要。本文从基础到进阶全面解析DNS知识,涵盖A、AAAA、CNAME、MX、TXT、CAA等常见记录类型及其应用场景。通过学习,你将了解DNS的工作原理,掌握如何优化域名配置,确保网站与邮件服务高效运行。无论搭建个人博客还是企业官网,本文都能助你轻松搞定域名解析!
1168 0
|
2月前
|
Kubernetes Cloud Native 持续交付
Docker:轻量级容器化技术解析
Docker:轻量级容器化技术解析
|
4月前
|
存储 安全 数据建模
Docker数据卷深入解析与操作技巧
通过巧妙使用Docker数据卷,我们就能实现数据的灵活管理和无缝迁移,享受容器化的便捷,同时确保数据的安全与高效共享。
66 6
|
5月前
|
域名解析 网络协议 网络安全
SSL证书验证全攻略:DNS/HTTP/手动解析怎么选?
SSL证书在网络安全中至关重要,1Panel提供三种验证方式:DNS验证、HTTP验证和手动解析。DNS验证便捷,适合CDN网站;HTTP验证快速,需服务器在线;手动解析灵活,但操作复杂。根据需求选择合适确认方式,定期检查证书状态。
622 2
|
6月前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
272 12
|
7月前
|
域名解析 存储 缓存
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
|
5月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
|
10月前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
464 76
|
8月前
|
负载均衡 网络协议 容灾
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
【飞天技术沙龙】云解析 DNS 上海站《多云+IDC 融合场景下的 DNS 最佳实践》圆满落幕
149 0
|
9月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
2339 11