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

我正在尝试在一个docker主机中为多个容器设置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 

并通过testing

 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 ping但不能访问172.17.42.1:53/udp。

有什么build议么?

似乎在默认安装中的Centos 7(“最小安装”)在iptables中创build了许多规则/链。 我不知道为什么,因为我不是一个系统pipe理员。 所以在我冲洗了所有的链条和规则后:

 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它就开始工作了。