Docker 容器的 :DNS! {是怎么实}现的

2025-07-29 06:01:21      来源:参考消息

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

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

责编:古如南编辑

陈楚生摇滚

  2024年,西安机场旅客吞吐量4703.04万人次,排名全国第11位;乌鲁木齐机场旅客吞吐量2776.57万人次,排名全国第18位。西安去年GDP为13317.78亿元,排名全国第21位;乌鲁木齐去年GDP仅为4502.16亿元,排名全国第74位。

特朗普被爆对打击伊朗没信心

  连日来,受高温少雨天气影响,黄河流域甘肃、内蒙古、山西、陕西、河南、山东等省(区)出现不同程度的旱情。针对流域相关省(区)旱情,黄河防总和水利部黄河水利委员会(简称黄委)第一时间分别启动抗旱四级响应和干旱防御Ⅳ级应急响应;自6月14日17时起,针对河南省启动干旱防御Ⅲ级应急响应;要求各相关单位落实落细各项抗旱保供水措施,做好旱情持续或进一步发展的应对准备。

柯南成年人之间的爱张力

  国泰航空之前已在内地开通19个航点,但这次格外用心,为乌鲁木齐航线专门投放了配备可全平躺商务舱座椅的A330-300宽体机,在机载娱乐系统加入了《我的阿勒泰》,商务舱酒单上还出现了新疆产的红酒。

习近平会见新西兰总理拉克森

  6月14日上午,水利部组织开展抗旱专题会商,分析研判华北黄淮等北方地区旱情形势,要求即日起,受旱地区上游黄河、海河、淮河流域的控制性水库全部进入抗旱调度模式,加大下泄流量,保障抗旱用水需求,确保城乡居民饮水安全,以及规模化养殖和大牲畜用水安全,全力保障灌区农作物时令灌溉用水。6月14日15时,水利部将针对河南、河北的干旱防御应急响应提升至三级,目前维持针对山西、江苏、安徽、山东、陕西、甘肃6省的干旱防御四级应急响应,并派出两个工作组正在一线指导抗旱工作。

千万别买到青岛西

  国泰航空之前已在内地开通19个航点,但这次格外用心,为乌鲁木齐航线专门投放了配备可全平躺商务舱座椅的A330-300宽体机,在机载娱乐系统加入了《我的阿勒泰》,商务舱酒单上还出现了新疆产的红酒。

金世佳理发都在看书

  反观乌鲁木齐,偏居西北一隅的位置,为向西开放提供了便利。李瀚明指出,与乌鲁木齐类似的其实是哈萨克斯坦阿拉木图,两座城市都位于亚欧航路的中间点。利用空客A321XLR这样的远程窄体机,阿拉木图成功开航伦敦。在国内,乌鲁木齐是唯一一个用窄体机能直飞欧洲的航空枢纽。/p>

金世佳理发都在看书

  省应急管理、农业农村、水利等部门成立由25个厅级干部带队的工作组和27个专家组,分片包市深入一线、深入基层,对各地水源调度抗旱播种、抗旱保苗等工作进行督促指导,及时协调解决遇到的实际困难和问题。各地也积极采取行动,组织人员力量全面开展抗旱。/p>

中国留学生迷奸人受害者发声

  另外,近些年受经济下行、大规模减税降费、楼市土地市场低迷等影响,地方财政收入受到一定冲击,而刚性支出有增无减。在财政收支矛盾不断加大的背景下,地方政府也有更大的动力加强征管,查漏补缺,依法依规征收该征收的税费。当然,税务部门也要同时落实落细减税降费政策,坚守不收“过头税费”红线。