130 votes

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

Les contenants dans un pays d'accueil "tout à coup" perd la connexion à l'extérieur du monde des conteneurs. Cependant, certains hôtes ont été actualisées et du coup, on a la situation suivante:

  1. L'hôte peut communiquer avec d'autres hôtes.
  2. Conteneurs cours d'exécution dans le pays hôte ne peut 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 la commande ping sur 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 a été dans les premières versions de Docker... Ayant Docker 1.9.1 et 1.10.3, Comment résoudre ce problème?

206voto

Marcello de Sales Points 1771

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

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

net.ipv4.ip_forward=1

J'ai ensuite redémarré le réseau de service et de valider 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 le monde extérieur des conteneurs!

20voto

Essayez d'ajouter -net=host avec la commande docker run .

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X