# Docker Swarm Cheatsheet ## Initialisation et Configuration du Swarm ```bash # Initialiser un nouveau swarm docker swarm init --advertise-addr # Obtenir le token pour ajouter un worker docker swarm join-token worker # Obtenir le token pour ajouter un manager docker swarm join-token manager # Rejoindre un swarm en tant que worker docker swarm join --token : # Rejoindre un swarm en tant que manager docker swarm join --token : # Quitter un swarm docker swarm leave [--force] ``` ## Gestion des Nœuds ```bash # Lister tous les nœuds du swarm docker node ls # Inspecter un nœud docker node inspect # Promouvoir un worker en manager docker node promote # Rétrograder un manager en worker docker node demote # Mettre un nœud en pause (drain) docker node update --availability drain # Remettre un nœud en service docker node update --availability active # Ajouter des labels à un nœud docker node update --label-add = # Supprimer un nœud du swarm docker node rm [--force] ``` ## Services ```bash # Créer un service docker service create --name --replicas # Créer un service avec des options avancées docker service create \ --name \ --replicas \ --constraint node.role==manager \ --publish : \ --mount type=volume,source=,destination= \ --env = \ --network \ # Lister tous les services docker service ls # Voir les tâches d'un service (conteneurs) docker service ps # Inspecter un service docker service inspect # Mettre à jour un service docker service update \ --image \ --replicas \ --update-parallelism \ --update-delay s \ # Faire une mise à jour progressive (rolling update) docker service update --update-parallelism 2 --update-delay 20s # Supprimer un service docker service rm # Mettre à l'échelle un service (scale) docker service scale = # Logs d'un service docker service logs ``` ## Stacks ```bash # Déployer une stack depuis un fichier compose docker stack deploy -c # Lister toutes les stacks docker stack ls # Lister les services d'une stack docker stack services # Lister les tâches d'une stack docker stack ps # Supprimer une stack docker stack rm ``` ## Secrets ```bash # Créer un secret à partir d'un fichier docker secret create # Créer un secret à partir de l'entrée standard echo "secret-data" | docker secret create - # Lister les secrets docker secret ls # Inspecter un secret docker secret inspect # Supprimer un secret docker secret rm # Utiliser un secret dans un service docker service create \ --name \ --secret \ ``` ## Configs ```bash # Créer une config à partir d'un fichier docker config create # Lister les configs docker config ls # Inspecter une config docker config inspect # Supprimer une config docker config rm # Utiliser une config dans un service docker service create \ --name \ --config \ ``` ## Réseaux Overlay ```bash # Créer un réseau overlay docker network create --driver overlay # Créer un réseau overlay chiffré docker network create --driver overlay --opt encrypted # Lister les réseaux docker network ls # Inspecter un réseau docker network inspect # Supprimer un réseau docker network rm ``` ## Diagnostic et Maintenance ```bash # Vérifier l'état du swarm docker info # Voir les événements du swarm docker events --filter 'scope=swarm' # Unlock swarm (après un redémarrage du manager si autolock est activé) docker swarm unlock # Obtenir la clé de déverrouillage (à sauvegarder) docker swarm unlock-key # Faire tourner la clé de déverrouillage docker swarm unlock-key --rotate ```