O contêiner do Docker não consegue fazer ping do host

6

Estou seguindo este tutorial

link

Eu usei os seguintes comandos

$ sudo brctl addbr bridge0
$ sudo ip addr add 192.168.0.160/24 dev bridge0
$ sudo ip link set dev bridge0 up

# Confirming that our bridge is up and running

$ ip addr show bridge0
4: bridge0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state UP group default
    link/ether 66:38:d0:0d:76:18 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.160/24 scope global bridge0
       valid_lft forever preferred_lft forever

# Tell Docker about it and restart (on Ubuntu)

$ echo 'DOCKER_OPTS="-b=bridge0"' >> /etc/default/docker
$ sudo service docker start

Parece funcionar bem, pois vejo que todos os meus conatiner estão recebendo ip nesse intervalo.

Agora, como eu tenho 3 conatiners

mysql 192.168.0.3
redis 192.168.0.5
webserver 192.168.0.6

Agora, se eu pingar redis do servidor da web, ele funciona

mas eu não consigo fazer o ping do host 192.168.0.160 ele diz que o host de destino não é possível

INFO

vagrant@ubuntu-docker-base:/mydocker/containers$ brctl show
bridge name bridge id       STP enabled interfaces
bridge0  8000.7e8945d   no  veth1a8b959
                            veth404a3b2
                            veth7959157
docker0     8000.5689799    no

contêiner

root@286329032cd5:/# ip route
default via 192.168.0.160 dev eth0
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.5
root@286329032cd5:/# ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.125 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.130 ms
64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.072 ms
^C
--- 192.168.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.072/0.109/0.130/0.026 ms
root@286329032cd5:/# ping 192.168.0.160
PING 192.168.0.160 (192.168.0.160) 56(84) bytes of data.
From 192.168.0.5 icmp_seq=1 Destination Host Unreachable
From 192.168.0.5 icmp_seq=2 Destination Host Unreachable
From 192.168.0.5 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.0.160 ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5032ms
pipe 3
root@286329032cd5:/#
    
por Mirage 13.01.2015 / 06:03

3 respostas

2

Eu tive um problema semelhante, em que queria me conectar de um contêiner docker ao host para acessar um postfix e um servidor apache.

Ajudou a adicionar essas regras ao iptables do host:

iptables -A INPUT -i docker0 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -i docker0 -p tcp -m tcp --dport 80 -j ACCEPT

Essas portas foram abertas antes, mas apenas para interface eth0, não para docker0;)

    
por 11.08.2015 / 01:06
0

Do seu manual:

If you already have Docker up and running with its old docker0 still configured, you will probably want to begin by stopping the service and removing the interface:

# Stopping Docker and removing docker0

$ sudo service docker stop
$ sudo ip link set dev docker0 down
$ sudo brctl delbr docker0
    
por 13.01.2015 / 06:11
0

Eu tive esse problema ao executar a imagem hello-world-nginx de kitematic

Se eu executá-lo no terminal Docker da seguinte maneira, posso visualizar o HTML de saída do contêiner do meu navegador do Windows:

docker run -p 80:80 hello-world-nginx

A opção -p encaminha a porta 80 no VirtualBox para a porta 80 no contêiner.

    
por 04.04.2016 / 13:21