2016-04-25 4 views
-1

Ich habe Probleme beim Konfigurieren des Netzwerks in Docker. Details sind unten angegeben.Probleme mit der Netzwerkverbindung mit Docker

Host-Maschine: - Ubuntu Server 14.04 LTS 64-Bit. IP-Subnetz: 10.0.0.0/16, IP-Adresse: 10.0.0.206/16 und Standard-Gateway: 10.0.0.1/16. Dieses System verfügt über ein installiertes Andockfenster (Version 1.6.2 build 7c8fca2) und hat eine Standard-IP-Adresse in der Brücke docker0 von 172.17.42.1/16. Der Container hat jedoch die IP als 172.17.0.1 erhalten. Probleme sind wie folgt.

  1. Meine Host-Maschine und Docker Behälter ist in der Lage, miteinander und mit dem Internet zu verbinden, aber alle anderen Maschinen sind nicht in der Lage mit Docker Behälter zu verbinden.

  2. Das Ändern der docker0 Bridge IP ist temporär und wird bei jedem Neustart auf 172.17.42.1/16 zurückgesetzt.

  3. Ich kann keine statische IP-Adresse meines Containers festlegen, da er sich bei jedem Beenden automatisch ändert oder wenn der Host neu gestartet wird. Überprüft die Netzwerkkonfigurationsdatei des Containers/etc/network/interfaces, aber Änderungen an dieser Datei haben keine Auswirkung auf die eth0-Schnittstelle.

In sehr kurz, ich bin von den äußeren Welt mit dem Behälter zu verbinden (von anderen physikalischen Maschinen) nicht in der Lage, auch wenn ich die Netzwerkschnittstelle von anderen Maschinen konfiguriert haben zu verbinden Host und Behälter Andockfenster.

Wie kann ich dieses Verbindungsproblem beheben?

+0

Was ist Protokoll und Port möchten Sie von außen auf Docker Container verbinden? Wie hast du Container laufen lassen? 'docker run -d -p xx: xx image' –

+0

Die erste Frage, die mir in den Sinn kommt: Warum hast du eine ziemlich veraltete Version von Docker? Ich sage das nur für den Fall, dass es ein anderes Problem gibt, das Ihnen Probleme bereitet. Sei gewarnt, dass sie die IPs für docker0 in 1.9 geändert haben (glaube ich). Ich erinnere mich auch, dass das Setzen einer statischen IP-Adresse in einem Container ein Anti-Pattern ist, aber wenn Sie müssen, dann müssen Sie sicherstellen, dass Sie _docker diese Informationen commit_, oder es wird jedes Mal, wenn Sie den Container neu starten. – Marakai

Antwort

-1

Docker-Container können standardmäßig nicht von einem anderen Host aus aufgerufen werden. Und die IP-Adresse wird von Docker zugewiesen.

Sie können "--net = host" verwenden, wenn Container ausgeführt werden, dann teilt der Container dieselbe IP-Adresse mit dem Host-Knoten. Und der Container wird von einem anderen Knoten verfügbar sein.

docker run -it --net=host ubuntu bash