Docker不parsing主机名

我需要知道在同一台机器上运行的一些容器的主机名(或IP地址)。 正如我已经在这里评论(但还没有答案),我使用docker-compose 。 文档说,compose会自动为在同一个docker-compose.yml文件中定义的所有容器创build一个主机名条目:

服务的每个容器都join默认networking,并且该networking上的其他容器都可以访问它们,并且可以通过与容器名称相同的主机名来发现它们。

但是我无法通过docker exec -it my_container tail -20 /etc/hosts看到任何主机项。 我也尝试添加links到我的容器,但没有任何改变。

Docker 1.10推出了一些新的networkingfunction ,其中包括一个内部的DNS服务器 ,主机查找完成。

在默认桥接networking(docker0)上,查找继续通过/etc/hostsfunction运行。 /etc/resolv.conf将指向你的主机parsing器。

在用户定义的networking上,Docker将使用内部DNS服务器。 /etc/resolv.conf将有一个Docker DNS服务器的内部IP地址。 这种设置允许网桥,定制和覆盖networking以类似的方式工作。 因此,群体上的覆盖networking将像本地桥网那样从群体中填充主机数据。

保留了“传统”设置,以便在不影响现有设置的情况下引入新的networkingfunction。

发现

DNSparsing器能够通过该服务的名称为泊坞窗撰写服务提供IP。

例如,在定义了webdb服务的情况下,将db服务扩展为3 ,所有db实例都将parsing:

 $ docker-compose run 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