无法连接到Docker容器内的网络

sly*_*sid 6 docker

我有一个运行Docker的CentOS 7主机。当我从主机对8.8.8.8执行ping操作时,ping操作成功,而docker容器中的ping操作却不起作用。

来自主持人

[root@linux1 ~]# 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=47 time=31.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=47 time=31.6 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 31.592/31.617/31.643/0.179 ms
Run Code Online (Sandbox Code Playgroud)

从Docker容器(我正在使用基本的ubuntu映像):

[root@linux1 ~]# docker run ubuntu ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 172.17.0.1 icmp_seq=1 Destination Host Unreachable
From 172.17.0.1 icmp_seq=2 Destination Host Unreachable
From 172.17.0.1 icmp_seq=3 Destination Host Unreachable
From 172.17.0.1 icmp_seq=4 Destination Host Unreachable
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 0 received, +4 errors, 100% packet loss, time 5000ms
pipe 4
Run Code Online (Sandbox Code Playgroud)

任何的意见都将会有帮助。谢谢

sly*_*sid 0

我想通了这个问题。这不是 DNS 的问题,而是 Docker 容器内网络连接本身的问题。深入分析问题是分配给 docker0 接口的默认 IP,它与我的网络地址冲突。强制 docker 守护进程分配 IP,这样就不会发生冲突,我的问题就解决了。

谢谢

  • 嗨,我面临着类似的问题。您能否提供用于强制 docker 守护进程为其分配 IP 的命令。 (14认同)