У меня есть экземпляр CoreOS, на котором запущен док-контейнер, который запускает dnsmasq
. В настоящее время конфигурация dnsmasq
настроена только для регистрации всех запросов и запуска в режиме отладки, поэтому она должна просто выполнять кэширование.
Когда я пытаюсь использовать это из другого контейнера с dig
, nslookup
или просто запускаю ping google.com
, я получаю обратно Bad hostname: google.com
и вижу в запросе журнала, что запросы поступают несколько раз, как будто они повторяются.
Если я попытаюсь запустить те же команды с хост-компьютера под управлением CoreOS, все разрешится без проблем с одной попытки.
Мой план состоит в том, чтобы запустить dnsmasq
на каждой машине с CoreOS в кластере и обеспечить его поддержку confd
, чтобы все службы могли разрешать соответствующие аналоги.
Я использую Alpine linux для своих базовых образов, но я пытался запустить эти команды в образах Ubuntu и Debian с тем же результатом.
ping other-container
). Docker 1.10 имеет дополнительные улучшения для этого и позволяет вам устанавливать псевдонимы области действия контейнера и псевдонимы области действия сети для контейнеров. - person thaJeztah   schedule 28.03.2016nslookup
черезstrace
внутри одного из контейнеров, и одна строка была особенно интересной —reply from unexpected source: 172.17.42.1#53, expected 10.137.64.102#53
По сути, адрес10.
передается контейнеру как--dns
. Но ответы приходят от сетевого адаптераdocker
хоста, поэтому он отбрасывается и повторяется. Когда я устанавливаю преобразователь в качестве IP-адреса во внутренней сети докеров, он работает нормально. - person Vasili Sviridov   schedule 29.03.2016