Docker DNS服务器不可联系的外部容器

我知道这看起来像一个重复的post,但我没有审查其他人,甚至尝试从这些post的一些选项,但似乎没有得到它的工作。

我有一个在Docker容器中运行的绑定DNS服务器。

docker run --name=dns-server -it -d --dns=8.8.8.8 --dns=8.8.4.4 -p 53:53/tcp -p 53:53/udp -v /DATA/etc/bind:/etc/bind -v /DATA/var/cach /bind:/var/cache/bind -v /DATA/var/log/named:/var/log/named jon/dns-server 

运行良好:

 [root@docker-01 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8272ac164460 jon/dns-server "/entrypoint.sh" 34 seconds ago Up 34 seconds 0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp dns-server 

端口53是暴露在udp和tcp上…

 [root@docker-01 ~]# docker port dns-server 53/tcp -> 0.0.0.0:53 53/udp -> 0.0.0.0:53 

如果我对容器地址进行查询:

 [root@docker-01 ~]# host google.com 172.17.0.2 Using domain server: Name: 172.17.0.2 Address: 172.17.0.2#53 Aliases: google.com has address 216.58.206.78 google.com has IPv6 address 2a00:1450:4009:815::200e google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com. 

但是,当我尝试与主机地址:

 [root@docker-01 ~]# host google.com 192.168.56.101 Using domain server: Name: 192.168.56.101 Address: 192.168.56.101#53 Aliases: Host google.com not found: 5(REFUSED) 

它被拒绝了。

我已经尝试在iptables中添加规则以允许端口53通过,而且我也尝试了在--net=host运行中用--net=host

感觉就像我正在接近这个工作,但我认为这是iptables是把我扔了。

我不认为使用容器地址作为DNS服务器是一种select,因为最终我需要将此VM(主机)移动到esxi主机,以便为该环境中的其他VM提供DNS服务。

感谢Jon