web-dev-qa-db-fra.com

Mise en réseau Docker désactivée: AVERTISSEMENT: le transfert IPv4 est désactivé. La mise en réseau ne fonctionnera pas

Les conteneurs d'un hôte perdent "soudainement" la connexion avec les conteneurs du monde extérieur. Cependant, certains hôtes ont été rafraîchis et nous avons soudainement eu la situation suivante:

  1. L'hôte peut communiquer avec d'autres hôtes.
  2. Les conteneurs exécutés sur l'hôte ne peuvent pas communiquer avec d'autres hôtes.

Voici un exemple:

[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 ms

Maintenant, à partir du conteneur lui-même, nous ne pouvons pas cingler le même hôte

[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.net

La première fois que j'ai vu cet avertissement, c'était dans les versions initiales de Docker ... Avoir Docker 1.9.1 et 1.10.3, Comment résoudre ce problème?

72
Marcello de Sales

J'ai examiné http://chrisgilmerproj.github.io/ubuntu/network/docker/2013/09/05/ipv4-forwarding-and-docker.html et cela m'a aidé à résoudre le problème sur l'hôte. .

J'ai ajouté ce qui suit à /etc/sysctl.conf :

net.ipv4.ip_forward=1

J'ai ensuite redémarré le service réseau et validé le paramètre:

[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

Tous les conteneurs peuvent maintenant communiquer avec les conteneurs du monde extérieur!

140
Marcello de Sales

Essayez d’ajouter --network=Host avec la commande docker run pour résoudre ce problème.

https://medium.com/@gchandra/docker-ipv4-forwarding-is-disabled-8499ce59231e

5
Ganesh Chandrasekaran