docker 容器无法连接到 DNS 服务器容器

docker 容器无法连接到 DNS 服务器容器

我在 Ubuntu 14.04 LTS 上使用 docker 1.7.1,内核为 3.13.0-55。Docker 使用以下选项启动

DOCKER_OPTS="--bip=172.17.42.1/24 --dns=172.17.42.1 --dns=8.8.8.8"

确保容器的 IP 范围固定。我想使用一个容器作为所有其他容器的 DNS 服务器(请参阅上面的 dns 配置选项)。因此,我启动了我的 DNS 容器,并将端口绑定到 172.17.42.1:53/udp:

$ docker inspect --format='{{.HostConfig.PortBindings}}' mydns map[53/udp:[{172.17.42.1 53}]]

我可以使用 ip 从我的主机查询 DNS 服务器172.17.42.1,但不能从任何容器内部:

$ nslookup some-host 172.17.42.1 ;; connection timed out; no servers could be reached

我尝试使用 iptables 明确允许这一点,如下所示

iptables -A INPUT -s 172.17.42.1 -d 172.17.42.1 -p udp -m udp --dport 53 -j ACCEPT

但它仍然不起作用。

您知道可能存在什么问题吗?

[编辑] 这是由 tcpdump 捕获并由 Wireshark 可视化的从容器发出的 DNS 查询的结果:

在此处输入图片描述

相关内容