Networking 有时docker容器dns失败

Networking 有时docker容器dns失败,networking,docker,Networking,Docker,有时我的docker容器无法解析dns [root@1397f4b5b0b8 ~]# ping google.co.kr ping: unknown host google.co.kr 虽然一周后它可以正常工作。突然间,它引起了问题 一些信息 1) docker容器ip 160: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 16:a4:72:e5:

有时我的docker容器无法解析dns

[root@1397f4b5b0b8 ~]# ping google.co.kr
ping: unknown host google.co.kr
虽然一周后它可以正常工作。突然间,它引起了问题

一些信息

1) docker容器ip

160: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 16:a4:72:e5:a0:a4 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.4/16 scope global eth0
    inet6 fe80::14a4:72ff:fee5:a0a4/64 scope link 
       valid_lft forever preferred_lft forever
162: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3) 我把平送到另一个集装箱

[root@1397f4b5b0b8 ~]# ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=1.01 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.033 ms
4) docker ip地址

docker0   Link encap:Ethernet  HWaddr FE:4D:B5:ED:F2:9C  
          inet addr:172.17.42.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::fc99:12ff:fe49:b968/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10615013037 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10581841163 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1452195292535 (1.3 TiB)  TX bytes:1436185782855 (1.3 TiB)

em1       Link encap:Ethernet  HWaddr C8:1F:66:F9:22:1B  
          inet addr:192.168.100.64  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::ca1f:66ff:fef9:221b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18816069331 errors:0 dropped:4421 overruns:0 frame:69216
          TX packets:18985345996 errors:0 dropped:6 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2823201130099 (2.5 TiB)  TX bytes:2383729440082 (2.1 TiB)
          Interrupt:35 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:14689636131 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14689636131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1541592592181 (1.4 TiB)  TX bytes:1541592592181 (1.4 TiB)
5) docker路由表

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 em1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 em1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 em1
我将重启带到docker并启动容器。 然后docker容器可以连接到外部

[root@1397f4b5b0b8 ~]# ping google.co.kr
PING google.co.kr (173.194.72.94) 56(84) bytes of data.
64 bytes from tf-in-f94.1e100.net (173.194.72.94): icmp_seq=1 ttl=48 time=69.3 ms
64 bytes from tf-in-f94.1e100.net (173.194.72.94): icmp_seq=2 ttl=48 time=69.4 ms
64 bytes from tf-in-f94.1e100.net (173.194.72.94): icmp_seq=3 ttl=48 time=69.4 ms
64 bytes from tf-in-f94.1e100.net (173.194.72.94): icmp_seq=4 ttl=48 time=69.3 ms

我应该如何修复它?

如谷歌协议中所述,谷歌没有对其公共DNS服务的可用性做出任何承诺(即没有SLA-服务级别协议)。换句话说,由于随机原因,它随时可能失败,这就是您所经历的。

由于某些原因,
resolv.conf
权限受到了太多限制。您可以通过以下方法解决此问题:

sudo chmod 644 /etc/resolv.conf

我找到了dmesg日志。netlink:解析属性后剩余的20字节。netlink:解析属性后剩余20字节。主机如何?也许你只是失去了你的人际网络?主机运行的是什么操作系统?Centos 6.6,出现问题时主机正常。这是唯一一个在网络之外失败的人1.这是我所不知道的。您可以尝试将容器网络设置为“主机”,看看这是否有帮助?
sudo chmod 644 /etc/resolv.conf