Docker默认网桥网络能否使用主机名进行DNS解析?
问题解答:Compose默认网络与Docker原生默认网桥的区别
这完全不矛盾,核心是要分清两个“默认网络”的定义:
Docker原生默认网桥(
bridge网络):这是Docker安装完成后自动生成的内置网桥,确实不支持通过容器名称/服务名进行DNS解析,容器之间只能通过IP地址通信,早期的--link方式现在已经被官方不推荐使用。Docker Compose默认网络:这是Compose为每个应用项目自动创建的自定义网桥,并非上面提到的原生
bridge网络。这个网络默认启用了DNS服务发现功能,同一Compose项目中的所有服务容器都能直接通过服务名称(或容器名称)互相访问,和“自定义网桥支持DNS解析”的说法完全一致。
你可以通过执行docker network ls命令验证:Compose创建的默认网络名称通常是<你的项目名>_default,和原生的bridge网络是完全独立的两个网络实体。
Docker官方文档里提到的“默认情况下Compose为应用设置的单独网络”,指的就是这个Compose自动创建的自定义网桥,而非Docker原生的默认网桥,所以不存在说法上的矛盾。
内容的提问来源于stack exchange,提问作者user22155685
相关产品推荐
相关产品推荐

