Есть ли способ проверить связь с Docker-контейнером по его имени хоста из другого Docker-контейнера?

Я ищу решение для проверки связи с Docker-контейнером по его имени хоста из другого 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

он остается в ожидании без какого-либо результата.

Может кто-нибудь сказать мне, если есть решение для этого?

2 ответа

Вы должны быть в состоянии пропинговать, используя псевдоним, который вы дали в команде ссылки (часть после :), в твоем случае 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:/#

Если вам нужно пропинговать другое имя, вы можете добавить записи в /etc/hosts с --add-host аргумент docker run,

Один из способов добиться того, что вам нужно, - это использовать WeaveDNS.

Другие вопросы по тегам