Docker 1.10 引入了一些新的网络功能,其中包括一个用于 查找主机的内部 DNS 服务器。
在默认的桥接网络 (docker0) 上,查找继续/etc/hosts
按照它们过去的方式运行。/etc/resolv.conf
将指向您的主机解析器。
在用户定义的网络上,Docker 将使用内部 DNS 服务器。/etc/resolv.conf
将具有 Docker DNS 服务器的内部 IP 地址。这种设置允许桥接、自定义和覆盖网络以类似的方式工作。因此,swarm 上的覆盖网络将像本地桥接网络一样从整个 swarm 填充主机数据。
保留了“旧版”设置,因此可以在不影响现有设置的情况下引入新的网络功能。
发现
DNS 解析器能够通过该服务的名称为 docker compose 服务提供 IP。
例如,定义了web
anddb
服务,并且db
服务缩放到3
,所有db
实例都将解析:
$ docker-compose run --rm web nslookup db
Name: db
Address 1: 172.22.0.4 composenetworks_db_2.composenetworks_mynet
Address 2: 172.22.0.5 composenetworks_db_3.composenetworks_mynet
Address 3: 172.22.0.3 composenetworks_db_1.composenetworks_mynet