Docker Swarm - wann es gegenüber Compose Sinn macht
Docker Swarm - wann es gegenüber Compose Sinn macht
Docker Compose und Docker Swarm nutzen dasselbe YAML-Format — aber Swarm bringt Multi-Host-Clustering und echte Hochverfügbarkeit.
Der Unterschied auf einen Blick
Compose: Ein Host, ein Daemon, ideal für Entwicklung und einfache Produktionssetups. Kein Load Balancing zwischen Hosts, kein automatisches Failover.
Swarm: Mehrere Hosts, verteilte Workloads, Rolling Updates, Service-Replicas mit automatischem Failover.
Wann Swarm — wann Compose?
| Kriterium | Compose | Swarm |
|-----------|---------|-------|
| Anzahl Hosts | 1 | 2+ |
| Hochverfügbarkeit | Nein | Ja |
| Rolling Updates | Manuell | Eingebaut |
| Komplexität | Gering | Mittel |
| Lernkurve | Niedrig | Moderat |
Compose-Empfehlung: Ein Host, kleine Projekte, kein HA-Bedarf — Compose ist einfacher und ausreichend.
Swarm-Empfehlung: Mehrere physische Server, 24/7-Verfügbarkeit, Nodes sollen ausfallen können ohne Downtime.
Swarm initialisieren
# Auf dem ersten Manager-Node:
docker swarm init --advertise-addr 192.168.1.10
# Gibt einen Join-Token aus:
docker swarm join-token worker # für Worker-Nodes
docker swarm join-token manager # für weitere Manager
# Auf Worker-Nodes ausführen:
docker swarm join --token SWMTKN-1-... 192.168.1.10:2377
# Cluster-Status prüfen
docker node ls
Stack deployen
Swarm nutzt dieselben Compose-Dateien, erweitert um deploy:-Direktiven:
services:
web:
image: nginx:1.25
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == worker
ports:
- "80:80"
docker stack deploy -c compose.yml mystack
docker stack ps mystack
docker stack services mystack
Rolling Update
# Image-Version im Compose ändern, dann:
docker stack deploy -c compose.yml mystack
# Swarm aktualisiert Container nacheinander (je nach update_config)
Swarm vs. Kubernetes
Swarm ist ideal, wenn Kubernetes zu komplex ist und Compose nicht mehr reicht. Für den Homelab-Bereich:
- Compose — Single Host, einfach
- Swarm — Multi-Host, HA gewünscht
- K3s — Kubernetes lernen, Edge-Setups
Portainer Community Edition bietet eine Web-GUI für Swarm-Cluster — empfehlenswert für Teams ohne CLI-Affinität.
Zusammenfassung
Swarm lohnt sich ab dem Moment, wo ein Server nicht mehr genug ist oder Rolling Updates ohne Downtime gebraucht werden. Für alles darunter: Compose ist das bessere Werkzeug — weniger Overhead, einfacher zu debuggen, gleiche YAML-Syntax.