Как получить доступ к контейнеру (SkyDns) через открытый порт в 172.17.42.1:53:53/udp (docker0) из другого контейнера? Докер 1.7.1, Centos 7
Я пытаюсь настроить SkyDNS/SkyDock на одном хосте докера для нескольких контейнеров. Таким образом, каждый контейнер должен использовать dns в 172.17.42.1 (/etc/resolv.conf).
Я следовал за установочной частью из README.md:
docker run -d -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker
docker run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain docker -name skydns
и тест через
docker run -d --name redis1 crosbymichael/redis
docker run -t -i crosbymichael/redis-cli -h redis1.redis.dev.docker
и это не работает. Я могу пропинговать с хоста контейнера "redis-cli" 172.17.42.1, но не могу получить доступ к 172.17.42.1:53/udp.
Какие-либо предложения?
1 ответ
Кажется, что Centos 7 ("Минимальная установка") при установке по умолчанию создает много правил / цепочек в iptables. Я не знаю почему, так как я не являюсь системным администратором. Итак, после того как я сбросил все цепочки и правила через:
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
а затем перезапустил службу докера service docker restart
все начало работать.