Docker DNS不工作。但可能是ping ip。戴软呢帽32

Docker DNS不工作。但可能是ping ip。戴软呢帽32,docker,dns,fedora,Docker,Dns,Fedora,在我的Fedora32机器中,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.

在我的Fedora32机器中,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将有更多命令)

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

docker attach video-test-1

在那之后,我试着去平安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中尝试了许多解决方案。但任何人都无法解决这个问题

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

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
ZONE=$(sudo firewall cmd——获取接口区域=)
sudo firewall cmd--zone=$zone--添加伪装--永久成功
sudo firewall cmd--重新加载成功
sudo systemctl重新启动docker

dig google.com说什么?dig在容器中不工作。
/# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.1.1
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