2017-01-03 5 views
28

Container in einem Host "verliert" plötzlich die Verbindung zu Außenweltcontainern. Einige Hosts wurden jedoch aktualisiert und plötzlich hatten wir die folgende Situation:Docker-Netzwerk deaktiviert: WARNUNG: Die IPv4-Weiterleitung ist deaktiviert. Netzwerk funktioniert nicht

  1. Der Host kann mit anderen Hosts kommunizieren.
  2. Container, die im Host ausgeführt werden, können nicht mit anderen Hosts kommunizieren.

Hier ist ein Beispiel:

[[email protected] 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 

nun aus dem Behälter selbst, wir nicht die gleichen Host-ping:

[[email protected] 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 

Das erste Mal, dass ich diese Warnung in den ersten Versionen war, sah of Docker ... Mit Docker 1.9.1 und 1.10.3, Wie man dieses Problem löst?

Antwort

52

Ich überprüfte http://chrisgilmerproj.github.io/ubuntu/network/docker/2013/09/05/ipv4-forwarding-and-docker.html und es half mir, das Problem auf dem Host zu lösen.

I hinzugefügt folgendes /etc/sysctl.conf:

net.ipv4.ip_forward=1 

I den Netzwerkdienst dann neu gestartet und validiert die Einstellung:

[[email protected] deploy]# systemctl restart network 
[[email protected] deploy]# sysctl net.ipv4.ip_forward 
net.ipv4.ip_forward = 1 
[[email protected] 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 

Alle Behälter können nun mit außen kommunizieren, Weltcontainer!

+1

Unter Ubuntu benötigte ich 'sudo sysctl -p', um die Einstellungen neu zu laden (systemctl wurde nicht gefunden). –

+0

Diese Lösung wurde auf Centos 7 benötigt, wenn Sie einfach versuchen, vom Host auf den Container zuzugreifen (zum Testen). –

+0

Ich bin ähnlich in Containern auf einem Windows-Host (auf Hyper-V). Gibt es irgendwo für Windows eine ähnliche Einstellung? –

Verwandte Themen