Docker:ping:unknown host yahoo.com

3
以下是我尝试过的所有方法:

使用-dns参数运行Docker守护进程:

sudo docker -d -dns 8.8.8.8

确保启用了 IP 转发功能:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

已设置名称服务器:

$ docker -dns '8.8.8.8' run centos:6.4 ping -c 3 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics --- 
3 packets transmitted, 0 received, 100% packet loss, time 12000ms

感谢任何建议。
1个回答

0

听起来像是Docker的自动iptables配置没有生效。如果您更改了主机IP地址而没有重新启动Docker守护程序,这种情况经常会发生。我建议尝试以下操作:

  1. 确保您可以从主机ping通(只是为了确保!)
  2. 重新启动Docker守护程序并重试(这应该会重置iptables配置)
  3. 检查iptables --list --table nat的输出

我的输出如下:

# iptables --list --table nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere            !127.0.0.0/8          ADDRTYPE match dst-type  LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  <redacted>/24 !<redacted>/24 
MASQUERADE  all  --  <redacted>/16 !<redacted>/16 

Chain DOCKER (2 references)
target     prot opt source               destination     

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接