Docker Swarm ist eine native Cluster-Management-Lösung für Docker-Container. Diese Anleitung zeigt, wie man Docker Swarm auf Ubuntu einrichtet und für die Verwaltung von Container-Clustern nutzt.
Voraussetzungen
- Ubuntu 22.04 oder neuer auf allen Maschinen
- Docker bereits auf allen Maschinen installiert
- Mindestens zwei Maschinen für den Swarm (eine für den Manager, eine für den Worker)
1. Docker installieren
Falls Docker noch nicht installiert ist, führe die folgenden Schritte aus:
Zuerst das System aktualisieren:
sudo apt update
Dann die notwendigen Abhängigkeiten installieren:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Docker-Repository hinzufügen:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Das Docker-Repository einbinden:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Die Paketliste aktualisieren:
sudo apt update
Docker installieren:
sudo apt install docker-ce -y
2. Docker Swarm initialisieren (Manager-Node)
Auf dem Manager-Node den Swarm initialisieren:
sudo docker swarm init --advertise-addr <Manager-IP>
Dies gibt dir einen Token, den du benötigst, um Worker-Nodes hinzuzufügen. Der Befehl sieht etwa so aus:
docker swarm join --token <token> <Manager-IP>:2377
3. Worker-Node zum Swarm hinzufügen
Auf jedem Worker-Node den Swarm beitreten, indem du den oben erhaltenen join
-Befehl ausführst:
sudo docker swarm join --token <token> <Manager-IP>:2377
4. Swarm-Status überprüfen
Auf dem Manager-Node den Swarm-Status mit folgendem Befehl überprüfen:
sudo docker node ls
Dies listet alle Nodes auf, die dem Swarm beigetreten sind.
5. Dienste im Swarm bereitstellen
Jetzt kannst du Container als Dienste im Swarm starten. Zum Beispiel einen einfachen Nginx-Service bereitstellen:
sudo docker service create --name nginx --replicas 3 -p 80:80 nginx
Dieser Befehl erstellt einen Service namens nginx
mit 3 Replikaten und veröffentlicht Port 80.
6. Swarm-Dienste überwachen
Die laufenden Dienste überwachen:
sudo docker service ls
Details zu einem bestimmten Service abrufen:
sudo docker service ps nginx
Fazit
Docker Swarm bietet eine einfache Möglichkeit, Container in einem Cluster zu verwalten. Mit minimalem Setup können mehrere Docker-Hosts zu einem leistungsfähigen Orchestrierungs-Cluster zusammengefügt werden. Es ist eine geeignete Lösung für einfache bis mittelgroße Projekte, die Containerisierung und Skalierung erfordern.