当主机使用dnsmasq并且Google的DNS服务器受到防火墙保护时,DNS无法在docker容器中工作?

当主机使用dnsmasq并且Google的DNS服务器受到防火墙保护时,DNS无法在docker容器中工作?,第1张

主机使用dnsmasq并且Google的DNS服务器受到防火墙保护时,DNS无法在docker容器中工作?

一个干净的解决方案是配置docker + dnsmasq,以便将来自docker容器的DNS请求转发到主机上运行的dnsmasq守护程序。

为此,您需要通过添加一个文件来配置dnsmasq来监听docker使用的网络接口

/etc/NetworkManager/dnsmasq.d/docker-bridge.conf

$ cat /etc/NetworkManager/dnsmasq.d/docker-bridge.conflisten-address=172.17.0.1

然后重新启动网络管理器以考虑配置文件:

sudo service network-manager restart

完成此 *** 作后,您可以将

172.17.0.1
docker中的主机IP地址(即Docker中的主机IP地址)添加到DNS服务器列表中。可以使用以下命令行来完成:

$ sudo docker run -ti --dns 172.17.0.1 mmoy/ubuntu-netutils bashroot@7805c7d153cc:/# ping www.example.comPING www.example.com (93.184.216.34) 56(84) bytes of data.64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=86.6 ms

…或通过docker的配置文件

/etc/docker/daemon.json
(如果不存在则创建它):

$ cat /etc/docker/daemon.json{  "dns": [    "172.17.0.1",        "8.8.8.8",        "8.8.4.4"  ]}

(如果dnsmasq失败,它将退回到Google的公共DNS)

您需要重新启动Docker才能将配置文件考虑在内:

sudo service docker restart

然后,您可以照常使用docker:

$ sudo docker run -ti mmoy/ubuntu-netutils bashroot@344a983908cb:/# ping www.example.comPING www.example.com (93.184.216.34) 56(84) bytes of data.64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=86.3 ms


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5000579.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存