Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Not able to connect to network inside docker container

Tags:

docker

I have a CentOS 7 host on which I am running Docker. When I do a ping from my host to 8.8.8.8, ping was successful whereas same inside a docker container is not working.

From Host

[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

From Docker Container (I am using basic ubuntu image):

[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

Any suggestions would be helpful. Thanks

like image 666
slysid Avatar asked Nov 18 '15 13:11

slysid


People also ask

Can't connect to Internet from docker container?

First thing to check is run cat /etc/resolv. conf in the docker container. If it has an invalid DNS server, such as nameserver 127.0. x.x , then the container will not be able to resolve the domain names into ip addresses, so ping google.com will fail.

Can docker containers access local network?

Your host can still be accessed from containers in the default bridge networking mode. You just need to reference it by its Docker network IP, instead of localhost or 127.0. 0.1 . Your host's Docker IP will be shown on the inet line.


2 Answers

Restart the Docker daemon on Debian9

service docker restart

and the connections and networks works fine

like image 92
Nolwennig Avatar answered Nov 15 '22 04:11

Nolwennig


Recently I faced a similar network issue. The other answers here didn't help: DNS was working fine and restarting Docker wouldn't change a thing. I've found that specifying the network as host solved it.

There are three ways of doing it:

In docker-compose:

By setting network_mode in the yaml file:

services:
  worker:
    build: .
    network_mode: host

In the image building stage for RUN commands:

docker build --network=host

In the execution stage for the application:

docker run --network=host <image>

like image 29
TheMechanic Avatar answered Nov 15 '22 04:11

TheMechanic