Docker Swarm · 8 min read · Oct 05, 2025

So installieren Sie Docker Swarm auf Ubuntu 22.04

Docker Swarm ist eine Container-Orchestrierung, die auf Docker Engine basiert. Es ermöglicht Ihnen, einen Cluster von Docker-Knoten auf mehreren Servern zu erstellen und bereitzustellen. Docker Swarm vereinfacht die Bereitstellung Ihrer containerisierten Anwendungen in einen Dienst. Es bietet eine einfache und unkomplizierte Möglichkeit, Container zu verwalten und zu orchestrieren.

Docker Swarm bietet ein hohes Maß an verfügbaren Anwendungen. In Docker Swarm können Sie eine einzelne Anwendung oder einen Dienst auf mehreren Knoten ausführen, die als “Worker Nodes” bezeichnet werden. Außerdem gibt es einen Knoten namens “Swarm Manager”, der die zentrale Verwaltung und Orchestrierung des Docker Swarm darstellt.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie die Docker Swarm-Software auf Ubuntu 22.04-Servern installieren.

Voraussetzungen

Um diese Anleitung abzuschließen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • 3 Ubuntu-Server 22.04 - Einer wird als Swarm Master/Manager verwendet, und zwei Server werden als Worker Nodes verwendet.
  • Ein Nicht-Root-Benutzer mit sudo-Administratorrechten.

Systeme einrichten

Bevor Sie Docker installieren und Docker Swarm konfigurieren, müssen Sie Ihre Systeme vorbereiten, indem Sie die folgenden Aufgaben ausführen:

  • Ports für Docker Swarm öffnen: Sie müssen einige Ports öffnen, die von Docker Swarm auf allen Ihren Servern verwendet werden. Dies kann über UFW (Uncomplicated Firewall) erreicht werden.
  • Docker-Repository hinzufügen: Sie werden das offizielle Docker-Repository verwenden, um Docker Engine auf allen Ihren Servern zu installieren.

Ports für Docker Swarm öffnen

Im folgenden Abschnitt öffnen Sie den Port 22 für SSH und dann die Ports 2377, 7946 und 4789 für Docker Swarm über UFW (Uncomplicated Firewall) auf dem Swarm Master/Manager und den Swarm Nodes. UFW ist standardmäßig installiert, aber noch nicht gestartet.

Zuerst führen Sie den folgenden Befehl aus, um das OpenSSH-Anwendungsprofil hinzuzufügen und den Standard-SSH-Port 22 zu öffnen. Dann starten und aktivieren Sie UFW.

sudo ufw allow OpenSSH  
sudo ufw enable

Geben Sie y ein, um fortzufahren, und Sie sollten die Ausgabe Firewall ist aktiv und beim Systemstart aktiviert erhalten.

enable ufw

Führen Sie nun den folgenden Befehl aus, um die Ports zu öffnen, die von Diensten in Ihrer Swarm-Bereitstellung verwendet werden. In diesem Fall werden Ports zwischen 30000:35000 für Dienste zugewiesen.

sudo ufw allow 30000:35000/tcp

Führen Sie als Nächstes den folgenden Befehl aus, um die Ports für Docker Swarm zu öffnen.

for ports in 2377/tcp 7946/tcp 7946/udp 4789/udp  
do  
sudo ufw allow $ports  
done

setup ufw

Laden Sie schließlich UFW neu und überprüfen Sie den UFW-Status, indem Sie den folgenden Befehl ausführen.

sudo ufw reload  
sudo ufw status

Sie sollten das OpenSSH-Anwendungsprofil und die für Docker Swarm geöffneten Ports einschließlich 2377, 7946 und 4789 auf UFW sehen.

verify ufw

Docker-Repository hinzufügen

Nachdem Sie UFW konfiguriert haben, müssen Sie das offizielle Docker-Repository zu Ihren Servern hinzufügen. Sie werden das offizielle Docker-Repository verwenden, um Docker Engine zu installieren.

Führen Sie den folgenden Befehl aus, um einige grundlegende Pakete auf Ihren Ubuntu-Servern zu installieren.

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

install basic deps

Führen Sie als Nächstes den folgenden Befehl aus, um den Docker GPG-Schlüssel und das Repository zu Ihren Systemen hinzuzufügen.

sudo install -m 0755 -d /etc/apt/keyrings  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg  
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \  
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \  
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \  
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Laden Sie schließlich das Ubuntu-Repository auf jedem Server, indem Sie den folgenden Befehl ausführen.

sudo apt update

Sie sollten sehen, dass das Docker-Repository während des Prozesses abgerufen wird.

update repo

Docker Engine installieren

Nachdem Sie Ihre Ubuntu-Systeme vorbereitet haben, installieren Sie Docker Engine auf diesen Servern.

Installieren Sie Docker Engine auf Ihren Ubuntu-Systemen mit dem folgenden Befehl. Geben Sie y ein, um die Installation zu bestätigen.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

install docker

Sobald die Installation abgeschlossen ist, führen Sie den folgenden systemctl-Befehl aus, um den Docker-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl is-enabled docker  
sudo systemctl status docker

In der folgenden Ausgabe sollten Sie sehen, dass der Docker-Dienst läuft und aktiviert ist.

check docker service

(Optional): Erlauben Sie Nicht-Root-Benutzern, Docker-Container auszuführen

Wenn Sie Docker Swarm bereitstellen und Container mit einem Nicht-Root-Benutzer ausführen, müssen Sie Ihren Benutzer zur Docker-Gruppe hinzufügen, damit der Benutzer den Docker-Befehl ausführen und Container ausführen kann.

Führen Sie den folgenden usermod-Befehl aus, um Ihren aktuellen Benutzer zur Docker-Gruppe hinzuzufügen.

sudo usermod -aG docker username

Melden Sie sich nun als Nicht-Root-Benutzer an und führen Sie den folgenden Docker-Befehl aus, um Ihre Konfiguration zu überprüfen.

su - username  
docker run hello-world

Wenn die Konfiguration erfolgreich ist, sollten Sie in der Lage sein, den Container hello-world auszuführen und die folgende Ausgabe zu erhalten:

docker hello-world

Docker Swarm erstellen

Jetzt, da Sie Docker Engine installiert haben, sind Sie bereit, Docker mit Ihren Ubuntu-Servern zu erstellen und zu starten. In diesem Beispiel verwenden wir einen Server als Swarm Master/Manager und zwei Server als Worker Nodes.

Führen Sie die folgenden Aufgaben aus, um Docker Swarm einzurichten:

  • Swarm-Modus auf dem Master/Manager initialisieren.
  • Worker Nodes zum Docker Swarm hinzufügen.

Lassen Sie uns beginnen.

Swarm-Modus auf Master/Manager initialisieren

Um Docker Swarm zu initialisieren, führen Sie den folgenden docker swarm init-Befehl aus. Der zusätzliche Parameter –advertise-addr bindet den Docker Swarm an die spezifische IP-Adresse, und der Parameter –default-addr-pool bestimmt die interne IP-Adresse für Container, die im Swarm ausgeführt werden.

In diesem Beispiel wird der Docker Swarm-Modus an die IP-Adresse 192.168.5.30 gebunden, und der IP-Adresspool für Container ist 10.20.0.0/16.

docker swarm init --advertise-addr 192.168.5.30 --default-addr-pool 10.20.0.0/16

Wenn der Initialisierungsprozess erfolgreich ist, wird die folgende Ausgabe angezeigt. In der Ausgabe sollten Sie das generierte Token zum Hinzufügen von Knoten zu Docker Swarm sehen.

Führen Sie als Nächstes den folgenden Befehl aus, um den Status des Swarm-Modus zu überprüfen.

docker info

Wenn der Swarm-Modus aktiviert ist, sollten Sie die Ausgabe Swarm: active mit Details zu NodeID und dem Status von Manager und Node erhalten.

check swarm mode

Führen Sie schließlich den folgenden Befehl aus, um die Liste der Knoten im Docker Swarm zu überprüfen.

docker node ls

An diesem Punkt ist nur ein Knoten in Ihrem Docker Swarm verfügbar, nämlich der Swarm Master/Manager.

Worker Nodes zum Docker Swarm hinzufügen

Nachdem Docker Swarm initialisiert wurde, können Sie Worker Nodes zu Ihrem Docker Swarm hinzufügen.

Zuerst führen Sie den folgenden Befehl aus, um das generierte Token für den Worker-Knoten anzuzeigen.

docker swarm join-token worker

Sie sollten Anweisungen zum Hinzufügen von Worker Nodes sehen, die das Token enthalten.

Wechseln Sie nun zum Worker-Knoten und fügen Sie den Worker-Knoten zum Docker Swarm hinzu, indem Sie den folgenden docker swarm join-Befehl ausführen.

docker swarm join --token SWMTKN-1-0i6kbe2oek1iw19jfpvd2j5l0dhfmssz4w505aeihx7ouz8wqc-2dbk7cnmo12uunj53eywwnqr7 192.168.5.30:2377

Wenn der Prozess erfolgreich ist, wird die Ausgabe ‘Dieser Knoten ist als Worker einem Swarm beigetreten’ auf Ihrem Bildschirm angezeigt.

Wechseln Sie als Nächstes zurück zum Swarm Master/Manager und führen Sie den folgenden Befehl aus, um die Liste der verfügbaren Knoten zu überprüfen.

docker node ls

Wenn alles gut geht, werden drei Server im Docker Swarm verfügbar sein, 1 der Swarm Manager und 2 Worker Nodes mit dem Status Bereit und die Verfügbarkeit läuft.

Dienst im Docker Swarm ausführen

An diesem Punkt haben Sie erfolgreich Docker Swarm mit drei Ubuntu-Servern erstellt. Jetzt lernen Sie, wie Sie Ihre Anwendung in das Docker Swarm bereitstellen, das als Dienst bezeichnet wird. Ein Dienst ist ein Abbild Ihrer Microservice-Anwendung, und es könnte ein HTTP-Server, Datenbankserver oder andere Anwendungen sein.

In diesem Beispiel werden Sie einen einfachen HTTP-Dienst mit einem Nginx-Abbild bereitstellen.

Führen Sie den folgenden Befehl aus, um einen neuen Dienst in Ihrem Swarm zu erstellen. In diesem Beispiel erstellen Sie einen neuen Dienst test-nginx mit 1 Replikat, exponieren den Port 30001 und basieren auf dem nginx:alpine-Abbild.

docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine

Überprüfen Sie nun die Details des test-nginx-Dienstes mit dem folgenden Befehl.

docker service inspect test-nginx  
docker service inspect --pretty test-nginx

Sie sollten detaillierte Informationen zum test-nginx-Dienst wie folgt sehen.

check service

Überprüfen Sie als Nächstes die Liste der Docker-Dienste im Docker Swarm mit dem folgenden Befehl.

docker service ls  
docker service ps test-nginx

Wenn erfolgreich, sollten Sie sehen, dass der test-nginx-Dienst auf dem NODE-Manager mit 1 Replikat und dem exponierten Port 30001 läuft.

check service detail

Letztendlich greifen Sie auf den test-nginx-Dienst über die Host-IP-Adresse mit Port 30001 zu, indem Sie den folgenden curl-Befehl verwenden.

curl 192.168.5.30:30001  
curl -I 192.168.5.30:30001

Sie sollten den Quellcode der index.html-Seite und die Details der HTTP-Header sehen.

check nginx service

Dienst im Docker Swarm skalieren

Jetzt, da Sie den Docker-Dienst bereitgestellt haben, besteht die nächste Aufgabe darin, den Dienst im Docker Swarm zu skalieren. Dies wird die gewünschte Replikation Ihrer Dienste über die Worker Nodes erstellen.

Um einen Dienst zu skalieren, führen Sie den folgenden docker service scale-Befehl aus. In diesem Fall werden Sie den test-nginx-Dienst auf 3 Replikate skalieren.

docker service scale test-nginx=3

scale service

Führen Sie nun den folgenden Befehl aus, um den test-nginx-Dienst zu überprüfen. Wenn der test-nginx-Dienst skaliert wurde, sollten Sie zwei weitere Dienste sehen, die von Docker erstellt wurden und auf beiden Worker Nodes laufen.

docker service ps test-nginx

Wechseln Sie zum Terminal des Worker-Knotens und führen Sie den folgenden Befehl aus, um sicherzustellen, dass der test-nginx-Dienst läuft.

docker ps  
curl 192.168.5.31:30001

Wenn alles gut geht, sollten Sie den Container test-nginx.RANDOM-STRING mit dem Status Up auf jedem der Worker Nodes sehen.

check service worker1

check service worker2

Dienst im Docker Swarm löschen

Um Ihre Umgebung aufzuräumen, werden Sie den test-nginx-Dienst aus Docker Swarm löschen und das nginx:alpine-Docker-Abbild entfernen.

Löschen Sie den test-nginx-Dienst und überprüfen Sie die Liste der verfügbaren Dienste im Docker Swarm mit dem folgenden Befehl.

docker service rm test-nginx  
docker service ps

Entfernen Sie nun das nginx:alpine-Abbild und überprüfen Sie die Liste der heruntergeladenen Abbilder für jeden Server mit dem folgenden Befehl.

docker rmi nginx:alpine  
docker images

Fazit

Zusammenfassend haben Sie jetzt erfolgreich Docker Swarm auf Ubuntu 22.04 Schritt für Schritt installiert. Sie haben Docker Swarm mit drei Ubuntu-Servern bereitgestellt und gelernt, wie Sie Anwendungen oder Dienste in Docker Swarm bereitstellen, skalieren und entfernen.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.