Docke:r 容器的 DNS 是怎么!!实现的

2025-07-26 05:10:25      来源:求是网

在日常使用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、自定义网络、多级域名等能力。

  纪宁说,目前中国青少年网球尤其是女子青少年网球,已经成为体育职业化和商业化领域一个风口。郑钦文夺冠能促进更多中国青少年加入网球运动。与此同时,中国网球训练场地和比赛场地硬件条件以及软件设施也在发生巨大变化,网球经济蕴含的巨大空间也随之逐步释放出来。

责编:陈凯辉编辑

陈楚生难听

  路透社13日称,新制裁包括衡水元展贸易有限公司和总部位于香港的恒邦微电子有限公司,理由是它们涉嫌或曾经参与“破坏乌克兰稳定”或“破坏或威胁乌克兰领土”。“美国之音”称,衡水元展贸易有限公司和香港恒邦微电子有限公司此前已被美国财政部制裁过。

马嘉祺云与海

  根据美国CNBC网站梳理的数据,通用汽车及其合资公司在华市场份额从2015年的15%左右降至去年的8.6%,中国市场盈利占通用汽车全部盈利的比例也有所下降。2022年,斯特兰蒂斯集团表示只在中国地区保留其旗下Jeep品牌的进口业务。

男子一周吃次火锅查出食管癌

  6月13日9时,国家防总针对广西、福建启动防汛四级应急响应,派出两个工作组分赴广西、福建协助指导;新增针对河北、内蒙古启动抗旱四级应急响应,并继续维持针对河南、山东的抗旱四级应急响应,两个工作组正在两省协助指导。

歌手首次开启双曲袭榜

  青海将西宁机场三期扩建工程视为深度融入国家“一带一路”建设的重点工程;甘肃认为兰州中川国际机场三期工程是积极参与共建“一带一路”的有力注脚;西安和乌鲁木齐都表示,咸阳机场、天山机场的改扩建工程,能助力西安、乌鲁木齐打造“一带一路”核心枢纽。

大学生感染情况

  纪宁说,目前中国青少年网球尤其是女子青少年网球,已经成为体育职业化和商业化领域一个风口。郑钦文夺冠能促进更多中国青少年加入网球运动。与此同时,中国网球训练场地和比赛场地硬件条件以及软件设施也在发生巨大变化,网球经济蕴含的巨大空间也随之逐步释放出来。

以色列全境响防空警报

  纪宁说,目前中国青少年网球尤其是女子青少年网球,已经成为体育职业化和商业化领域一个风口。郑钦文夺冠能促进更多中国青少年加入网球运动。与此同时,中国网球训练场地和比赛场地硬件条件以及软件设施也在发生巨大变化,网球经济蕴含的巨大空间也随之逐步释放出来。/p>

可乐饼

  第二,议程设置失灵。新任领导刚上任,却没有提出让民众有感的重大改革行动,欠缺议程设置能力,迄未展现其领导能力,无法主导政治议程,反而任由蓝白“在野”党主导议题引领风潮。/p>

微博旅游之夜

  去年,民航局、国家发改委联合发文《关于推进国际航空枢纽建设的指导意见》,画出国际航空枢纽的蓝图,提出“3+7+N”国际航空枢纽功能体系。