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

时间:2015-11-18 13:08:46

标签: docker

我有一台运行Docker的CentOS 7主机。当我从主机执行ping操作到8.8.8.8时,ping成功,而docker容器内的同样不起作用。

来自主持人

[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

来自Docker Container(我使用的是基本的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

任何建议都会有所帮助。感谢

4 个答案:

答案 0 :(得分:1)

在Debian9上重启Docker守护程序

service docker restart

,连接和网络工作正常

答案 1 :(得分:0)

试试这个:

docker run --dns=8.8.8.8 -it ubuntu ping 8.8.8.8

参考:DOCKER DNS

答案 2 :(得分:0)

最近我遇到了类似的网络问题。此处的其他答案无济于事:DNS运行正常,重新启动Docker不会改变任何事情。我发现将网络指定为host即可解决问题。

有三种方法:

docker-compose中:

通过在network_mode文件中设置yaml

services:
  worker:
    build: .
    network_mode: host

image building stage中用于RUN命令:

docker build --network=host

在应用程序的execution stage中:

docker run --network=host <image>

答案 3 :(得分:0)

我在分别停止和启动容器时遇到了同样的问题。我刚刚重建容器。

docker-compose down

docker-compose build

docker-compose up -d

然后问题就解决了。