从docker容器内部获取所有正在运行的容器的IP地址

时间:2019-04-30 13:30:26

标签: docker networking docker-swarm docker-networking

我正在使用docker overlay网络和集群服务在多个主机上运行多个容器。所有容器都连接到同一个docker网络,我可以使用它们的别名在它们之间进行通信。

假设一个场景:

Host1 -> container1: alias=conA. ip: 10.0.0.4
Host2 -> container2: alias=conB, ip: 10.0.0.5
Host3 -> container3: alias=conB, ip: 10.0.0.6

在container1内部,如果我执行 gethostbyname(conB),则会给出container2或container3的ip。

作为一种变通方法,我运行 gethostbyname(conB),直到获得2个唯一的IP地址。

我正在寻找的是获取连接到该网络的所有容器的container_name:ip_address表

1 个答案:

答案 0 :(得分:0)

我假设容器2和3是单个服务的两个副本?在这种情况下,您可以查找tasks.servicename的主机名以获取2个IP地址。