Docker DNS无法正常工作。但是可以ping ip。在Fedora 32中

时间:2020-06-15 04:48:40

标签: docker dns fedora

在我的Fedora 32机器中,DNS运行得更好。 ping google.com时,DNS查找正常。

PING google.com (172.217.160.174) 56(84) bytes of data.
64 bytes from bom05s12-in-f14.1e100.net (172.217.160.174): icmp_seq=1 ttl=117 time=41.5 ms
64 bytes from bom05s12-in-f14.1e100.net (172.217.160.174): icmp_seq=2 ttl=117 time=47.2 ms

我使用默认网桥网络构建了以下简单的docker镜像。 (我需要桥接网络。当我使用主机网络时,我的问题正在起作用。并且DockerImage将具有更多命令)

FROM tailor/docker-libvips:node-10.9
docker build --tag dinuka/video-file-service-test-sandbox:node-10.9 .
docker run -dit --name video-test-1 dinuka/video-file-service-test-sandbox:node-10.9

我已使用以下命令登录到容器。

docker attach video-test-1

之后,我尝试ping IP。这是成功。

/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=42.5 ms

但是它不能用于域

/# ping google.com
ping: google.com: Temporary failure in name resolution

容器DNS是正确的。它与我的计算机名称服务器相同。

/# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.1.1

我的机器操作系统是Fedora32。我禁用了selinux和firewalld。我已经在stackoverflow中尝试了许多解决方案。但是任何解决不了的问题。

1 个答案:

答案 0 :(得分:0)

您需要手动向网络接口添加伪装:

ZONE=$(sudo firewall-cmd --get-zone-of-interface=<internet facing interface>)
sudo firewall-cmd --zone=$ZONE --add-masquerade --permanent success 
sudo firewall-cmd --reload success
sudo systemctl restart docker