Verwalten und Skalieren des Docker Swarm Stacks
Nachdem Sie Ihre Multi-Service-Anwendung als Docker Swarm Stack bereitgestellt haben, können Sie verschiedene Befehle verwenden, um sie zu verwalten und zu skalieren.
Bereitstellen des Stacks
Um Ihre Anwendung als Docker Swarm Stack bereitzustellen, können Sie den Befehl docker stack deploy
verwenden:
docker stack deploy -c docker-compose.yml my-app
Dies erstellt die Swarm-Services basierend auf den Konfigurationen in Ihrer docker-compose.yml
-Datei.
Überwachen des Stacks
Sie können die folgenden Befehle verwenden, um den Status Ihres Swarm Stacks zu überwachen:
## Liste der laufenden Services
docker stack services my-app
## Liste der Tasks (Container-Instanzen) für einen Service
docker service ps my-app_web
## Anzeigen der Logs für einen Service
docker service logs my-app_web
Skalieren des Stacks
Um einen Service in Ihrem Swarm Stack zu skalieren, können Sie den Befehl docker service scale
verwenden:
## Skalieren des "web"-Services auf 5 Replikate
docker service scale my-app_web=5
Dies erstellt 4 weitere Instanzen des web
-Services, und Docker Swarm verteilt den Traffic automatisch auf diese.
graph LR
client[Client] --> load_balancer[Load Balancer]
load_balancer --> web1[Web Service]
load_balancer --> web2[Web Service]
load_balancer --> web3[Web Service]
load_balancer --> web4[Web Service]
load_balancer --> web5[Web Service]
web1 --> db[Database Service]
web2 --> db
web3 --> db
web4 --> db
web5 --> db
Aktualisieren des Stacks
Um Ihren Swarm Stack mit einer neuen Version eines Services zu aktualisieren, können Sie den Befehl docker service update
verwenden:
## Aktualisieren des "web"-Services auf ein neues Image
docker service update my-app_web --image labex/web-app:v2
Dies führt eine Roll-Update des web
-Services durch, wobei die alten Container durch die neuen ersetzt werden, ohne den Service zu unterbrechen.
Mit diesen Befehlen können Sie Ihren Docker Swarm Stack effektiv verwalten und skalieren, um die hohe Verfügbarkeit und Leistung Ihrer Multi-Service-Anwendung sicherzustellen.