Los contenedores en un host "de repente" pierden la conexión con los contenedores del mundo exterior. Sin embargo, algunos hosts se actualizaron y de repente tuvimos la siguiente situación:
Aquí hay un ejemplo:
[root@pprdespap322 deploy]# ping ci.docker.company.net PING pprdespap324.corp.company.net (10.137.55.22) 56(84) bytes of data. 64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=1 ttl=64 time=0.282 ms 64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=2 ttl=64 time=0.341 ms ^C --- pprdespap324.corp.company.net ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.282/0.311/0.341/0.034 msAhora, desde el propio contenedor, no podemos hacer ping al mismo host:
[root@pprdespap322 deploy]# docker run -ti quay.io/coreos/registry ping ci.docker.company.net WARNING: IPv4 forwarding is disabled. Networking will not work. ping: unknown host ci.docker.company.netLa primera vez que vi este aviso fue en las versiones iniciales de Docker... Teniendo Docker 1.9.1 y 1.10.3, ¿Cómo solucionar este problema?
Revisé http://chrisgilmerproj.github.io/ubuntu/network/docker/2013/09/05/ipv4-forwarding-and-docker.html y me ayudó a resolver el problema en el host.
Agregué lo siguiente a /etc/sysctl.conf :
net.ipv4.ip_forward=1Luego reinicié el servicio de red y validé la configuración:
[root@pprdespap322 deploy]# systemctl restart network [root@pprdespap322 deploy]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 [root@pprdespap322 deploy]# docker run -ti quay.io/coreos/registry ping ci.docker.company.net PING pprdespap324.corp.company.net (10.137.55.22) 56(84) bytes of data. 64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=1 ttl=63 time=0.329 ms 64 bytes from pprdespap324.corp.company.net (10.137.55.22): icmp_seq=2 ttl=63 time=0.306 ms ^C --- pprdespap324.corp.company.net ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.306/0.317/0.329/0.021 ms¡Todos los contenedores ahora pueden comunicarse con los contenedores del mundo exterior!
Intente reiniciar el servicio Docker.
Por ejemplo, para Ubuntu:
$ sudo systemctl restart dockerIntente agregar --network=host junto con el comando docker run para solucionar este problema.
https://medium.com/@gchandra/docker-ipv4-forwarding-is-disabled-8499ce59231e