Gestion et mise à l'échelle du stack Docker Swarm
Une fois que vous avez déployé votre application multi-service en tant que stack Docker Swarm, vous pouvez utiliser diverses commandes pour la gérer et la mettre à l'échelle.
Déploiement du stack
Pour déployer votre application en tant que stack Docker Swarm, vous pouvez utiliser la commande docker stack deploy :
docker stack deploy -c docker-compose.yml my-app
Cela créera les services Swarm basés sur les configurations de votre fichier docker-compose.yml.
Surveillance du stack
Vous pouvez utiliser les commandes suivantes pour surveiller l'état de votre stack Swarm :
## Lister les services en cours d'exécution
docker stack services my-app
## Lister les tâches (instances de conteneurs) pour un service
docker service ps my-app_web
## Afficher les journaux d'un service
docker service logs my-app_web
Mise à l'échelle du stack
Pour mettre à l'échelle un service dans votre stack Swarm, vous pouvez utiliser la commande docker service scale :
## Mettre à l'échelle le service "web" à 5 répliques
docker service scale my-app_web=5
Cela créera 4 instances supplémentaires du service web, et Docker Swarm équilibrera automatiquement le trafic entre elles.
graph LR
client[Client] --> load_balancer[Equilibreur de charge]
load_balancer --> web1[Service Web]
load_balancer --> web2[Service Web]
load_balancer --> web3[Service Web]
load_balancer --> web4[Service Web]
load_balancer --> web5[Service Web]
web1 --> db[Service Base de données]
web2 --> db
web3 --> db
web4 --> db
web5 --> db
Mise à jour du stack
Pour mettre à jour votre stack Swarm avec une nouvelle version d'un service, vous pouvez utiliser la commande docker service update :
## Mettre à jour le service "web" pour utiliser une nouvelle image
docker service update my-app_web --image labex/web-app:v2
Cela effectuera une mise à jour progressive du service web, remplaçant les anciens conteneurs par les nouveaux sans interrompre le service.
En utilisant ces commandes, vous pouvez efficacement gérer et mettre à l'échelle votre stack Docker Swarm pour garantir la haute disponibilité et les performances de votre application multi-service.