2015-12-05 8 views
20

Mit 1.9, gibt es eine Möglichkeit, einen Container direkt mit zwei oder mehr Netzwerkschnittstellen zu starten?Start Container mit mehreren Netzwerkschnittstellen

Sie können es tun, nachdem der Container mit "docker network connect" gestartet wurde, aber es bedeutet, dass der Prozess bereits ausgeführt wird und die Erstellung des neuen Prozesses möglicherweise fehlschlägt.

Antwort

1

Nein, das ist nicht möglich. Die Dokumente zeigen auch, dass die notwendige Befehlszeilenoption --net nur einen Namen einzigen Netzwerk akzeptiert: http://docs.docker.com/engine/reference/run/#network-settings

auch bedenken Sie bitte, dass Docker 1.9 ständig aktualisiert die /etc/hosts Datei in Ihrem Container, so dass ein laufender Prozess nicht auf dem ursprünglichen verlassen können Status dieser Datei. Der beste Weg wäre, Ihren Prozess auf Updates aufmerksam zu machen, indem Sie entweder die Datei /etc/hosts manuell lesen oder einen DNS-Server abfragen. Auf diese Weise haben Sie keine Probleme, wenn das zweite Netzwerk verbunden wird.

+0

kann ich bestätigen. Ich habe 'docker run -it - network bridge - network mynet/bin/bash' versucht - kein glück,' ungültiges referenzformat'. Habe auch zwei Argumente für die Option '... --network bridge mynet ... 'ausprobiert, aber Docker denkt,' mynet' ist das Bild, das ich verwenden möchte. –

5

Da @gesellix geantwortet hat, ist das momentan nicht möglich.

können Sie dieses Problem finden unter https://github.com/docker/docker/issues/17750

einige ausstehende Verbesserungen in diesem Bereich sind. Wie ich aus Diskussionen sehe - aktuelle Idee ist es, Container zu erstellen (mit Docker erstellen), Netzwerke (Docker Netzwerk verbinden) anzuhängen und dann zu starten (Docker starten).

können Sie Argumentation in den Kommentaren von https://github.com/docker/docker/pull/17796

UPD überprüfen: # 17750 geschlossen und wird in 1.10

+0

Genau was ich brauchen würde. Danke für die Rückmeldung! – Robert

+0

Und was, wenn ich mehrere IP-Adressen im selben Netzwerk haben muss? Netzwerkverbindung ändert nur IP zu einem anderen. – Mikz

27

Diese Frage oben eine Suche in Bezug auf Docker tut und mehrere Netzwerkschnittstellen zur Verfügung stehen. Obwohl nicht die erforderliche Version in der Frage Ich lasse hier einige Informationen:

Mit Docker 1.12+ ist es möglich, mehr als eine Netzwerkschnittstelle zu einem Docker-Container hinzuzufügen, aber es ist erforderlich, den Container zuerst zu erstellen und dann anhängen zweite (und Teilfolge) -Netzwerk NICs vor dem Behälter starten:

$ docker create --network=network1 --name container_name containerimage:latest 
$ docker network connect network2 container_name 
$ docker start container_name 

Es benötigt wird, um die Netzwerke zu erstellen zuerst:

$ docker network create --driver=bridge network1 --subnet=172.19.0.0/24 
$ docker network create --driver=bridge network2 --subnet=172.19.1.0/24 

Sie können aber auch den Behälter Anbringen der dockerhost Netzwerk-Schnittstellen starten, indem Sie der --networ k = Host-Argument in Docker ausführen:

$ docker run --net=host containerimage:latest 
+0

Wenn der Container gestartet wird, wird immer noch eine Verbindung zu einem neuen Netzwerk hergestellt, und das Ursprungsnetzwerk bleibt zugänglich. Docker-Version: 1.13.1 – zw963

Verwandte Themen