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

标签 docker skydns

我正在尝试在一台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

和测试通过
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。

有什么建议么?

最佳答案

在默认安装中,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

然后重启docker服务service docker restart一切开始起作用。

关于docker - 如何通过另一个容器的172.17.42.1:53:53/udp(docker0)通过暴露的端口访问容器(SkyDns)? Docker 1.7.1,Centos 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878395/

相关文章:

docker - 带Consul的Docker Swarm-经理不选择主要

docker - vertx EventBus 能否用作聊天应用程序的 "Redis Pub/Sub"

docker - 如何同时运行 SkyDns/Skydock 的 2 个环境?

dns - Kubernetes headless 服务 A Record 循环

Golang 更改导入模块名称失败

mysql - Docker 容器异步运行

docker - 安装 scikit-image 时没有名为 'numpy' 的模块

dotcloud - docker中容器的防火墙