如何通过暴露端口172.17.42.1:53:53/udp(docker0)从另一个容器访问容器(SkyDns)? Docker 1.7.1,Centos 7

时间:2015-10-01 02:10:22

标签: docker skydns

我正在尝试在一个泊坞主机中为多个容器设置SkyDNS / SkyDock。所以每个容器应该使用172.17.42.1(/etc/resolv.conf)的dns。

我按照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 个答案:

答案 0 :(得分:1)

默认安装中的Centos 7(“Minimal install”)似乎在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

然后重新启动docker service service docker restart 一切都开始奏效了。