有一种方法可以使用来自另一个Docker容器的主机名来ping一个Docker容器?

我正在寻找一个解决scheme,从另一个Docker容器使用其主机名ping一个Docker容器。 我尝试如下:

首先启动Docker容器:

docker run --rm -ti --hostname=repohost --name=repo repo 

启动第二个Docker容器,首先连接并启动bash:

 docker run --rm -ti --hostname=repo2host --link repo:rp repo2 /bin/bash 

在bash上开始repo2

 ping repohost 

它仍然在等待,没有任何结果。

有人可以告诉我是否有解决scheme?

您应该能够使用您在链接命令(后面的部分)中给出的别名进行ping,在您的情况下, ping rp应该可以工作。

下面的例子适用于我,给定一个名为furious_turing的运行容器:

$ docker run -it --link furious_turing:ft debian /bin/bash root@06b18931d80b:/# ping ft PING ft (172.17.0.3): 48 data bytes 56 bytes from 172.17.0.3: icmp_seq=0 ttl=64 time=0.136 ms 56 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.091 ms 56 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.092 ms ^C--- ft ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.091/0.106/0.136/0.000 ms root@06b18931d80b:/#

如果您需要ping另一个名称,可以使用--add-host参数将条目添加到/etc/hostsdocker run

一种方法来实现你所需要的是WeaveDNS 。