Docker Swarm erstellen für skalierbare Container-Orchestrierung
Jun 03, 2026
/
Faradilla A.
/
10 Min. Lesezeit
Docker Swarm ist ein Tool zur Container-Orchestrierung, mit dem Sie mehrere Docker-Engines als ein einheitliches System verwalten können. Damit können Sie containerisierte Anwendungen auf mehreren Maschinen bereitstellen und verwalten. Ihre Anwendung läuft weiter, selbst wenn ein Server ausfällt oder offline geht.
Dieser Artikel führt Sie Schritt für Schritt durch die Einrichtung eines Docker Swarms und die Bereitstellung von Diensten auf mehreren VPS-Instanzen. Am Ende wissen Sie, wie Sie mit Docker Swarm einen skalierbaren und hochverfügbaren Cluster erstellen und verwalten.
Voraussetzungen
Bevor Sie einen Docker-Swarm erstellen, richten Sie mindestens zwei Maschinen ein – einen Manager und einen Worker-Knoten. Dabei kann es sich um PCs, virtuelle Maschinen, VPS-Instanzen oder andere kompatible Umgebungen handeln.
In diesem Tutorial verwenden wir drei VPS-Instanzen aus Hostingers Docker-Hosting-Service – eine als Manager-Knoten und die beiden anderen als Worker-Knoten.
Für einen reibungslosen Betrieb benötigt Docker mindestens 4 GB RAM. Daher sollte unser KVM-1-Tarif – ab €5.49/Monat und mit einem CPU-Kern, 4 GB RAM sowie 50 GB NVMe-Speicherplatz – ausreichen.
Sie können jederzeit auf einen höherwertigen Tarif upgraden, um mehr Rechenleistung oder Speicherplatz zu erhalten. Ein weiterer Vorteil des Docker-Hostings von Hostinger ist, dass Docker und alle wichtigen Komponenten bereits vorinstalliert sind, sodass Sie nichts manuell einrichten müssen.

Sobald Sie Ihre VPS-Instanzen haben, empfehlen wir, jede einzelne so umzubenennen, dass ihre Rolle im Swarm erkennbar ist. Auch wenn es optional ist, verbessern benutzerdefinierte Hostnamen die Lesbarkeit und erleichtern es, jeden Knoten zu identifizieren.
Um den Hostnamen Ihres VPS bei Hostinger zu ändern, gehen Sie zu hPanel → VPS → Verwalten → Übersicht → VPS-Details. Klicken Sie dann auf das Stiftsymbol neben dem aktuellen Hostnamen und benennen Sie die Instanzen wie folgt um:
- Manager-Knoten – manager.vps
- Worker-Knoten 1 – worker1.vps
- Worker-Knoten 2 – worker2.vps

Wenn Sie auf Ihrem VPS Uncomplicated Firewall (UFW) eingerichtet haben, geben Sie die folgenden Ports frei, damit die Swarm-Knoten miteinander kommunizieren können:
- 2377 TCP – für die Clusterverwaltung und die Kommunikation zwischen den Knoten.
- 7946 TCP/UDP – für die Kommunikation zwischen Swarm-Knoten.
- 4789 UDP – für den Overlay-Netzwerkverkehr zwischen Containern auf verschiedenen Knoten.
Wenn Sie UFW noch nicht eingerichtet haben oder Ihren VPS gerade erst gekauft haben, überspringen Sie diesen Teil.
Um die erforderlichen Ports freizugeben, öffnen Sie auf jeder Instanz das Terminal und führen Sie Folgendes aus:
sudo ufw allow 2377/tcp sudo ufw allow 7946/tcp sudo ufw allow 7946/udp sudo ufw allow 4789/udp
Verwenden Sie dann den unten stehenden Befehl, um zu überprüfen, dass UFW aktiv ist und die Regeln angewendet wurden:
sudo ufw status
Hilfreich ist außerdem, wenn Sie mit den grundlegenden Docker-CLI-Befehlen vertraut sind, da Sie diese bei der Verwaltung Ihrer Dienste im Swarm verwenden. Sehen Sie sich unser vollständiges Docker-Spickzettel an, der die am häufigsten verwendeten Befehle für verschiedene Aufgaben enthält.
Einen Docker Swarm erstellen
Um einen Docker Swarm zu erstellen, müssen Sie einen Knoten als Swarm-Manager initialisieren und die übrigen Knoten als Worker-Knoten hinzufügen. Anschließend können Sie Dienste im Swarm bereitstellen und Befehle der Docker-Befehlszeilenschnittstelle (CLI) verwenden, um Aufgaben wie das Skalieren von Diensten oder das Durchführen von Rolling Updates auszuführen.
Gehen Sie wie folgt vor, um einen Docker Swarm zu erstellen und Dienste über mehrere Instanzen hinweg zu verwalten.
Da Sie sowohl mit Manager- als auch mit Worker-Knoten arbeiten, sollten Sie darauf achten, auf welchem Knoten Sie die einzelnen Schritte ausführen – einige gelten nur für den Manager-Knoten, andere nur für die Worker-Knoten.
1. Installieren Sie Docker auf allen Instanzen
Ausführen auf: allen Knoten.
Wie im Abschnitt zu den Voraussetzungen erwähnt, ist Docker bei den Docker-Hosting-Tarifen von Hostinger bereits vorinstalliert. Andernfalls müssen Sie diese Containerisierungsplattform installieren, und zwar auf allen Knoten, bevor Sie den Swarm einrichten.
Überprüfen Sie anschließend, ob Docker tatsächlich installiert ist, indem Sie Folgendes ausführen:
docker --version
So sollte die Ausgabe aussehen:

Prüfen Sie als Nächstes, ob der Docker-Dienst aktiv ist und läuft:
sudo systemctl status docker
Sie sollten einen Status wie active (running) sehen; das bestätigt, dass der Docker-Daemon ordnungsgemäß funktioniert.

Um die Statusausgabe zu beenden, drücken Sie Strg + C.
2. Initialisieren Sie den Swarm-Manager
Ausführen auf: Manager-Knoten.
Nachdem Sie Docker auf allen Knoten installiert haben, richten Sie Ihre Aufmerksamkeit auf den Manager -Knoten – dort erstellen Sie den Docker-Swarm. Stellen Sie zunächst sicher, dass Sie die IP-Adresse des Manager-Knotens kennen.
Als Hostinger-VPS-Kunde finden Sie die IP-Adresse im Abschnitt VPS-Details auf der Übersichtsseite – also an derselben Stelle, an der Sie zuvor den Hostnamen geändert haben.
Sobald Sie die IP-Adresse haben, führen Sie den folgenden Befehl aus, um den Swarm zu initialisieren. Ersetzen Sie [IP des Manager-Knotens] durch die tatsächliche IP Ihres VPS:
docker swarm init --advertise-addr [IP des Manager-Knotens]
Dieser Befehl erzeugt eine Ausgabe ähnlich wie:

Kopieren und speichern Sie den Join-Befehl – Sie benötigen ihn, um die Worker-Knoten mit dem Swarm zu verbinden.
Führen Sie folgenden Befehl aus, um zu bestätigen, dass der Swarm erfolgreich gestartet wurde:
docker info
Hier werden Informationen über den Zustand des Schwarms angezeigt.

Prüfen Sie dann die Liste der Knoten im Swarm:
docker node ls
Sie sollten Details wie Knoten-ID, Hostname, Status, Verfügbarkeit und Rolle sehen.

Profi-Tipp
Wenn Sie Knoten hinzufügen möchten, das Token aber vergessen haben, führen Sie auf dem Manager-Knoten diesen Befehl aus, um es erneut anzuzeigen:
docker swarm join-token worker
3. Worker-Knoten hinzufügen
Ausführen auf: den Knoten worker1 und worker2.
Wechseln Sie nun zum Knoten worker1 und führen Sie den Join-Befehl aus, den Sie vom Manager kopiert haben:
docker swarm join --token [join token] [manager node's IP]:2377
Wenn die Meldung „This node joined a swarm as a worker“ angezeigt wird, ist der Knoten dem Swarm erfolgreich als Worker beigetreten.

Wiederholen Sie denselben Vorgang bei worker2 oder allen weiteren Knoten, um sie mit dem Swarm zu verbinden.
Profi-Tipp
Jedes Mal, wenn Sie einen neuen Knoten hinzufügen, gehen Sie zurück zum Manager-Knoten und führen Sie docker node ls aus, um zu bestätigen, dass der neue Knoten dem Swarm tatsächlich beigetreten ist.
4. Ihren ersten Dienst bereitstellen
Ausführen auf: Manager-Knoten.
Kehren Sie zum Manager-Knoten zurück, um einen Testservice mit dem Namen hello-world bereitzustellen. Auch wenn dies nur ein Testdienst ist und Sie ihn im nächsten Schritt wieder löschen, hilft Ihnen diese Übung dabei, sich mit der Dienstverwaltung in Docker Swarm vertraut zu machen.
Hier ist der Befehl zum Erstellen des hello-world-Dienstes:
docker service create --replicas 1 --name hello-world alpine ping docker.com
- docker service create – startet die Diensterstellung in Docker Swarm.
- –replicas 1 – definiert die Anzahl der auszuführenden Service-Replikate. In diesem Fall ist es einfach 1.
- –name hello-world – legt den Dienstnamen auf hello-world fest.
- alpine ping docker.com – verwendet das alpine-Image, um docker.com als einfachen Test anzupingen.

Verwenden Sie danach den folgenden Befehl, um die im Swarm ausgeführten Services aufzulisten:
docker service ls

5. Dienste prüfen und skalieren
Ausführen auf: Manager-Knoten.
Nachdem Sie Ihren Testdienst bereitgestellt haben, ist es an der Zeit, ihn innerhalb des Swarms zu überprüfen und zu skalieren.
Prüfen Sie die Dienstdetails
Prüfen Sie die Details Ihres hello-world-Dienstes mit dem folgenden Befehl:
docker service inspect --pretty hello-world
Dadurch erhalten Sie detaillierte Informationen über den Service, einschließlich seiner ID, der Replikate und weiterer Einstellungen. Das Flag –pretty formatiert die Ausgabe, damit sie besser lesbar ist.

Prüfen Sie, wo der Dienst ausgeführt wird
Überprüfen Sie als Nächstes, welche Knoten den Dienst ausführen, indem Sie Folgendes ausführen:
docker service ps hello-world
Dadurch werden alle Aufgaben aufgelistet, die dem hello-world-Dienst zugeordnet sind, sowie die Knoten, auf denen sie ausgeführt werden.

Skalieren Sie den Dienst
Um den Dienst zu skalieren, ändern Sie die Anzahl der Replikate. Um hello-world auf drei Replikate zu skalieren, führen Sie beispielsweise Folgendes aus:
docker service scale hello-world=3
Docker Swarm erstellt dann zusätzliche Replikate des Dienstes auf verfügbaren Knoten.

Prüfen Sie die aktualisierten Aufgaben
Nach der Skalierung überprüfen Sie, wie die Aufgaben auf die Knoten verteilt sind:
docker service ps hello-world
Sie sollten sehen, dass die Aufgaben jetzt gleichmäßig auf drei Knoten verteilt sind – im Vergleich zum vorherigen Zustand, als Sie denselben Befehl ausgeführt haben.

Entfernen Sie den Dienst
Sobald Sie die Überprüfung und Skalierung des Dienstes abgeschlossen haben, entfernen Sie ihn aus dem Swarm, indem Sie Folgendes ausführen:
docker service rm hello-world
Mit diesem Befehl entfernen Sie hello-world sicher aus dem Swarm.

Prüfen Sie, ob der Dienst entfernt wurde
Vergewissern Sie sich mit diesem Befehl, dass der Dienst aus dem Swarm entfernt wurde:
docker service ls
Wenn der Dienst hello-world erfolgreich entfernt wurde, erscheint er nicht mehr in der Liste.
6. Rolling Updates auf Dienste anwenden
Ausführen auf: Manager-Knoten.
Mit einem Rolling Update können Sie Services ohne Ausfallzeit aktualisieren. Docker Swarm aktualisiert jeweils nur ein Replikat und fährt erst mit dem nächsten Replikat fort, wenn die Aktualisierung abgeschlossen ist.
Zuerst stellen Sie einen Dienst mit dem Container-Tag Redis 7.4.0 bereit. Aktualisieren Sie den Dienst anschließend mit dem Rolling-Update-Verfahren auf 7.4.1.
Stellen Sie einen Redis-Dienst bereit
Stellen Sie zunächst einen Dienst mit einer älteren Version des Redis-Docker-Images bereit, damit Sie ihn später aktualisieren können:
docker service create --name redis --replicas 3 redis:7.4.0

Aktualisieren Sie den Dienst
Um den Dienst zu aktualisieren, führen Sie den folgenden Befehl aus und geben Sie dabei eine neuere Version des Redis-Images an:
docker service update --image redis:7.4.1 redis
Docker Swarm ersetzt die alten Container schrittweise durch die aktualisierten und gewährleistet dabei einen unterbrechungsfreien Betrieb.
Prüfen Sie, ob der Dienst mit der aktualisierten Version ausgeführt wird
Um die aktualisierte Serviceversion zu prüfen und das neue Image zu bestätigen, führen Sie Folgendes aus:
docker service inspect --pretty redis

Prüfen Sie, auf welchen Knoten der Dienst ausgeführt wird
Um das Rolling Update zu überwachen und zu sehen, welche Container noch laufen und welche gerade ersetzt werden, verwenden Sie:
docker service ps redis
Sie sehen eine Liste von Containern, bei der der gewünschte Zustand für die aktualisierten Container als running und für die alten als shutdown angezeigt wird.

7. Sichern Sie Ihren Swarm
Ausführen auf: Manager-Knoten.
Wenn Sie Ihren Schwarm sperren, ist zum Entsperren und Ändern seiner Konfiguration ein Verschlüsselungsschlüssel erforderlich. Dadurch wird sichergestellt, dass nur autorisierte Benutzer auf den Schwarm zugreifen und ihn ändern können, wodurch verhindert wird, dass unbefugte Benutzer den Cluster verändern.
Wichtig! Sie müssen den Schwarm nicht entsperren, wenn Sie ihm nur einen neuen Knoten hinzufügen möchten.
Aktivieren Sie die automatische Sperre für den Swarm
In der Regel können Sie den Swarm während der Initialisierung sperren, indem Sie das Flag –autolock hinzufügen, etwa so:
docker swarm init --autolock --advertise-addr [manager node's IP]
Da Sie die automatische Sperre zuvor jedoch nicht aktiviert haben, können Sie den vorhandenen Swarm weiterhin sperren, indem Sie Folgendes ausführen:
docker swarm update --autolock=true
Dadurch wird der Schwarm so konfiguriert, dass er bei jedem Neustart automatisch gesperrt wird. Außerdem wird ein Schlüssel erzeugt, mit dem sich der Schwarm entsperren lässt – bewahren Sie ihn sicher auf.

Wenn Sie die automatische Sperre deaktivieren möchten, ändern Sie einfach den Wert des Flags –autolock von true auf false.
Rufen Sie den Entsperrschlüssel ab
Wenn Sie den Schlüssel beim Aktivieren der automatischen Sperre nicht gespeichert haben, können Sie ihn abrufen, indem Sie Folgendes ausführen:
docker swarm unlock-key
Entsperren Sie den Swarm
Um den Docker-Dienst neu zu starten oder Wartungsarbeiten auf dem Manager-Knoten durchzuführen, müssen Sie den Swarm entsperren. Führen Sie dazu Folgendes aus:
docker swarm unlock
Anschließend werden Sie aufgefordert, den Entsperrschlüssel einzugeben, den Sie zuvor gespeichert haben.
Empfohlene Lektüre
Verwenden Sie zum Schutz sensibler Daten Docker-Build-Secrets. Auch wenn dies den Schwarm nicht direkt absichert, trägt es dazu bei, Ihre Anmeldedaten und sensiblen Informationen während des Builds und zur Laufzeit zu schützen.
8. Knoten verwalten und warten
Ausführen auf: Manager-Knoten.
Zur Verwaltung eines Schwarms müssen Sie regelmäßig die Verfügbarkeit und Rolle jedes Knotens prüfen. Auf diese Weise sichern Sie die Gesundheit des Schwarms und verhindern Störungen.
Prüfen Sie einen einzelnen Knoten
Verwenden Sie diesen Befehl, um einen Knoten zu überprüfen. Ersetzen Sie dabei [node name] durch den tatsächlichen Knotennamen:
docker node inspect [node name]
Sie sehen den aktuellen Status, die Verfügbarkeit und die Rollen des Knotens innerhalb des Schwarms.

Entleeren Sie einen Knoten
Wenn Sie einen Knoten in den Drain-Modus versetzen, ist er für neue Aufgaben nicht verfügbar. So können Sie Wartungsarbeiten sicher durchführen, ohne den Swarm zu beeinträchtigen:
docker node update --availability drain [node name]
Dadurch werden auf dem Knoten keine neuen Aufgaben mehr geplant, und vorhandene Aufgaben werden auf andere Knoten migriert.
Pausieren Sie einen Knoten
Wenn Sie einen Knoten pausieren, werden darauf keine neuen Aufgaben mehr eingeplant, bereits laufende Aufgaben werden jedoch weiterhin ausgeführt. Hier ist der Befehl:
docker node update --availability pause [node name]
Das ist praktisch, wenn Sie die Zuweisung von Aufgaben an den Knoten vorübergehend aussetzen möchten, ohne die laufenden Vorgänge des Knotens zu beeinträchtigen.

Stellen Sie einen entleerten oder pausierten Knoten wieder her
Setzen Sie den Knoten nach Abschluss der Wartung wieder in den Normalzustand, indem Sie seine Verfügbarkeit von drain oder pause auf active ändern:
docker node update --availability active [node name]
Stufen Sie einen Knoten zum Manager hoch
Damit ein Knoten den Schwarm verwalten kann, stufen Sie ihn mit diesem Befehl zu einem Manager hoch:
docker node promote [node name]

Stufen Sie einen Manager-Knoten zurück
Mitunter möchten Sie im Zuge einer Neuorganisation oder aus Wartungsgründen einen Knoten herabstufen und seine Rolle wieder in die eines Workers zurücksetzen. Führen Sie in diesem Fall Folgendes aus:
docker node demote [node name]

Profi-Tipp
Statt Knoten einzeln zu verwalten, können Sie mehrere Knoten mit einem einzigen Befehl aktualisieren. Um beispielsweise die Knoten worker1 und worker2 zu Managern hochzustufen, führen Sie Folgendes aus:
docker node promote worker1 worker2
9. Einen Swarm verlassen und löschen
Ausführen auf: worker1- worker2- und manager-Knoten.
Nicht zuletzt können Sie Knoten aus dem Schwarm entfernen und bei Bedarf sogar den gesamten Schwarm löschen.
Lassen Sie Worker-Knoten den Swarm verlassen
Führen Sie auf Ihrem worker1 -Knoten diesen Befehl aus, damit er den Swarm sicher verlässt:
docker swarm leave

Wiederholen Sie denselben Vorgang für alle anderen Knoten, die Sie aus dem Schwarm entfernen möchten.
Entfernen Sie die ausgetretenen Knoten
Nachdem ein Worker-Knoten den Swarm verlassen hat, entfernen Sie ihn auf dem Manager -Knoten aus der Knotenliste:
docker node rm [node name]
Dadurch verteilt Docker Engine keine Aufgaben mehr an diesen Knoten. Wie gewohnt können Sie mehrere Knoten mit einem einzigen Befehl entfernen, indem Sie ihre Namen auflisten:
docker node rm [node name 1] [node name 2]

Löschen Sie den Swarm
Es gibt keinen speziellen Befehl, um einen Swarm vollständig zu entfernen, aber Sie können den Manager-Knoten daraus austreten lassen, wodurch der Swarm faktisch außer Betrieb gesetzt wird:
docker swarm leave --force
Stellen Sie sicher, dass dies der letzte Knoten im Schwarm ist. Wenn andere Manager-Knoten verbleiben, löscht dieser Befehl den Swarm nicht.
Fazit
Mit Docker Swarm lassen sich containerisierte Anwendungen über mehrere Maschinen hinweg einfach bereitstellen, skalieren und aktualisieren, während Ihre Infrastruktur hochverfügbar und ausfallsicher bleibt.
In diesem Tutorial haben wir die Schritte erläutert, mit denen Sie einen Docker Swarm von Grund auf einrichten und verwalten:
- Bereiten Sie VPS-Instanzen vor und installieren Sie Docker darauf.
- Initialisieren Sie den Swarm-Manager-Knoten.
- Fügen Sie dem Swarm Worker-Knoten hinzu.
- Stellen Sie einen Testdienst bereit, um sich mit der Dienstverwaltung vertraut zu machen.
- Prüfen und skalieren Sie den Dienst, um die Aufgabenverteilung zu analysieren.
- Führen Sie Rolling Updates ohne Ausfallzeiten durch.
- Aktivieren Sie die automatische Sperre für den Swarm, um die Sicherheit zu erhöhen.
- Verwalten und warten Sie Knoten effizient.
- Entfernen Sie Knoten und löschen Sie den Swarm.
Versuchen Sie als Nächstes, eine produktive Anwendung in Ihrem Swarm bereitzustellen oder ein Tool wie NGINX als Reverse Proxy einzurichten, um den Datenverkehr zu steuern.
Häufig gestellte Fragen (FAQ) zum Erstellen eines Docker Swarms
Was ist Docker Swarm?
Docker Swarm ist ein natives Clustering- und Orchestrierungswerkzeug, mit dem Sie eine Gruppe von Docker-Engines als ein einziges virtuelles System verwalten können. Damit können Sie containerisierte Anwendungen mit hoher Verfügbarkeit und integrierter Lastverteilung über mehrere Knoten hinweg bereitstellen, skalieren und warten.
Wie füge ich einem Docker Swarm Knoten hinzu?
Um einen Knoten hinzuzufügen, generieren Sie zunächst auf dem Manager-Knoten mit docker swarm join-token worker ein Join-Token. Führen Sie dann auf dem neuen Knoten den join-Befehl aus, um ihn mit dem Schwarm zu verbinden. Der Knoten tritt dem Cluster automatisch bei.
Kann ich einen Multi-Host-Docker-Swarm erstellen?
Ja, Docker Swarm ist für Multi-Host-Umgebungen ausgelegt. Einen Swarm können Sie mit Maschinen auf verschiedenen Hosts oder bei unterschiedlichen Cloud-Anbietern erstellen. Sobald sie verbunden sind, arbeiten sie als einzelner Cluster, sodass Sie mit der integrierten Dienstverteilung Dienste über mehrere Hosts hinweg ausführen können.
Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.