Есть ли способ проверить связь с 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.