2016-08-09 21 views
1

Ich benutze derzeit Docker Engine 1.11 und ich untersuche, ob es für mich möglich ist, zu Docker 1.12 zu wechseln und Swarm zu verwenden. Ich verwende derzeit Docker, um 50+ Bamboo-Agenten auszuführen, die alle über einen Port verfügen müssen, der einem Port auf dem Server zugeordnet ist. Zum Beispiel muss jeder Docker Container verfügbaren Port 4000 haben, also wenn ich Docker laufen, ich do-Docker Swarm - Map Ports und Skalierung

Docker run -p 10000:4000 myimg 
Docker run -p 10001:4000 myimg 
Docker run -p 10002:4000 myimg 
Docker run -p 10003:4000 myimg 

In Docker Schwarm, von dem, was ich verstehe, würde ich den folgenden Befehl ausführen meinen Dienst maßstabs 50 Container

docker service scale helloworld=5 

Aber wenn ich das tat, würden sie alle versuchen, auf den gleichen Port zu mappen. Wie kann ich das erreichen? Ist es möglich?

+0

Beachten Sie, dass Sie ein Upgrade auf 1.12 durchführen können, während Sie Docker weiterhin wie in 1.11 verwenden, ohne die neuen Funktionen des Swarm-Modus zu verwenden. Wenn Sie über einige Dienste verfügen, die den neuen Swarm-Modus verwenden können, können sie auf denselben Servern ausgeführt werden. – BMitch

Antwort

1

Nein, das geht nicht.

Es ist nur eine Schlüsselfunktion, die Service Andockfenster sieht vor, dass ein einzelner Port zu mehreren Containern abbilden (Service Discovery)

Und ein anderer ist, wenn der Behälter ausfällt, Schwarm wird eine neue starten. (Selbstheilung)

Ich weiß nichts über Bamboo, also kann ich dir nicht sagen, ob es eine Möglichkeit gibt, Bambus-Service mit dem Schwarm-Modus zu betreiben.

+0

Es ist eigentlich eine Datenbank im Container, die den verfügbaren Port benötigt. Danke für die Antwort! Hoffentlich wird diese Funktion herauskommen. Es wäre schön, einfach den Port zu skalieren, der für jede Instanz oder etwas abgebildet ist. – PolarisUser

Verwandte Themen