Doc:ker 容器的 DNS 是怎么!!实现的

2025-07-29 15:20:22      来源:华西都市报

在日常使用Docker构建微服务架构的过程中,我们经常会遇到一个问题:多个容器之间是如何通过名字互相访问的?DNS是怎么做到的?

从底层机制讲清楚Docker的DNS系统

1.容器间通信的前提:同一个网络

Docker默认会创建一个叫bridge的网桥网络。所有未指定网络的容器,都会被分配到这个bridge网络中。

在这个默认网络中,虽然每个容器都有一个独立的IP地址,但要实现通过容器名访问其他容器,就必须依赖Docker提供的DNS服务。

⚠️注意:只有在用户自定义的bridge网络中,容器名解析才默认开启!默认的bridge网络不支持容器名解析!

2.Docker的内置DNS是如何工作的?

Docker在每个容器启动时,会将容器的/etc/resolv.conf文件指向一个特殊的DNS地址:127.0.0.11

这个地址并不是真的公网DNS,而是DockerDaemon内置的DNS服务器。

这个DNS有以下作用:

解析外部域名(比如访问百度、Google)

解析容器内部服务名(比如web,db等容器名)

它的背后是Docker的embeddedDNSserver,工作机制大概如下:

1️⃣容器发出DNS查询请求(查某个服务名)

2️⃣请求发到127.0.0.11(docker的内部DNS)

3️⃣DockerDNS根据网络配置,找到对应容器的IP地址

4️⃣将结果返回给发起请求的容器

3.实验验证:容器名访问是否生效?

我们创建一个自定义网络,并启动两个容器测试下

#创建一个自定义bridge网络dockernetworkcreatemynet#启动容器A,名字叫webdockerrun-it--rm--nameweb--networkmynetbusyboxsh#启动容器B,在这个网络中尝试pingwebdockerrun-it--rm--networkmynetbusyboxsh

在B容器中输入:

pingweb

你会发现,DNS能自动解析出web的IP,这就说明Docker的内置DNS正常工作啦

4.自定义服务名(别名)怎么设置?

有时候我们希望容器访问的名字不是容器名,而是我们指定的服务名。Docker也支持这一点:

dockerrun-it--rm\--networkmynet\--namemydb\--network-aliasdatabase\busyboxsh

然后在其他容器中,就可以通过database这个名字访问它

5.与外部DNS的协同

Docker的embeddedDNS并不是万能的,它在无法解析服务名时,会把请求转发给/etc/resolv.conf中指定的上游DNS。

这意味着:

外部网络访问正常(比如你容器内pingwww.baidu.com)

内部容器名也能解析

DockerDNS是中间层代理

这个设计非常巧妙!兼顾了内外网的域名解析。

6.容器DNS失效的常见问题

❌没有使用自定义网络,导致DNS解析失败

❌使用了host网络,容器直接共享宿主机网络,无法使用Docker的DNS

❌被resolv.conf修改或者挂载了宿主机DNS文件

❌某些VPN环境导致容器DNS路由异常

解决方法建议:

尽量使用自定义bridge网络

检查/etc/resolv.conf是否被覆盖

检查Docker网络配置dockernetworkinspect

总结

Docker容器之间的DNS解析,其实是靠DockerDaemon内置的DNS服务(监听在127.0.0.11)来实现的,它能让容器通过服务名互相访问,还支持alias、自定义网络、多级域名等能力。

  新疆机场集团总经理吕辉斌表示,国泰航空开通乌鲁木齐至香港航线,标志着乌鲁木齐天山国际机场的航线网络又一次升级,满足了新疆及周边地区旅客日益增长的出行需求,不仅提升了乌鲁木齐机场的国际化水平,也将进一步增强新疆的区位优势和影响力,共同助力打造乌鲁木齐成为连接亚欧区域门户复合型国际航空枢纽目标。

责编:阮紫瑄编辑

一家三口被杀婴儿睡觉侥幸存活

  钟自然严重违反党的政治纪律、组织纪律、廉洁纪律和生活纪律,构成严重职务违法并涉嫌受贿、故意泄露国家秘密犯罪,且在党的十八大后不收敛、不收手,性质严重,影响恶劣,应予严肃处理。

被跑男科普到了她的来历

  钟自然严重违反党的政治纪律、组织纪律、廉洁纪律和生活纪律,构成严重职务违法并涉嫌受贿、故意泄露国家秘密犯罪,且在党的十八大后不收敛、不收手,性质严重,影响恶劣,应予严肃处理。

女子婚礼后不领证被老公起诉

  “实际上就是‘打样’。”李瀚明认为,国泰开航证明了乌鲁木齐机场具备保障顶级航司的能力,会产生示范效应。国泰飞得好,其他国际顶级航司,以及东亚、东南亚的航司都会考虑跟进。除了证明机场的保障能力,也是新疆以此为契机,对外释放开放活力的强烈信号。

伊朗大使形容特朗普是白日做梦

  纪宁说:“欧美国家的网球市场已逐渐进入饱和阶段,中国被认为可能带来新的爆发性增长点。”他认为,在中国这个网球新兴市场,应更充分地挖掘体育明星的商业价值。“这有利于全面释放中国体育经济的增长潜力。”

林黛玉哭了次唐僧哭了次

  美国财政部本周早些时候也公布了新的反俄制裁方案,涉及俄罗斯以及中国等其他国家的300多家公司、银行和数十名个人。中国外交部发言人林剑13日表示,美国在全球范围内滥施单边制裁贻害无穷,严重损害他国主权安全,造成人道惨剧,破坏产供链稳定。乌克兰危机升级后,美方制裁更是变本加厉。而这种乱舞制裁大棒的做法,不仅无助于问题的解决,反而成为世界一个主要的风险源头。

上戏内蒙古委培班招收过届学生

  据英国政府13日发表声明称:“今天的行动包括英国首次针对俄罗斯总统‘影子舰队’中的船只实施制裁,俄罗斯利用这些船只规避英国和七国集团(G7)的制裁,并继续不受限制地进行石油贸易。”这些新制裁还针对俄罗斯军方的弹药、机床、微电子和物流供应商,包括位于中国、以色列、吉尔吉斯斯坦和俄罗斯的实体。声明写道,英国首相苏纳克在意大利参加G7峰会时宣布了这些新的制裁措施,“这将削弱俄罗斯为其战争机器提供资金和装备的能力”。/p>

每一代人的钱都被他挣到了

  兰州机场T1+T2面积8.9万平方米,去年吞吐量超过1700万人次,可以说不堪重负。乌鲁木齐机场T1+T2+T3面积18.48万平方米,需要承载超过2700万人次的吞吐量。/p>

女子动物园制止他人乱喊乱叫遭群殴

  “有些地区出现了多个国际航空枢纽的格局。比如华南的广州、深圳,西南的成都、重庆、昆明,西北的西安、乌鲁木齐。但与成渝不同的是,西北地域辽阔,西安与乌鲁木齐距离非常远,两个枢纽生态位截然不同。”