Ajouter docs/docker/swarm-cheatsheet
This commit is contained in:
202
docs/docker/swarm-cheatsheet
Normal file
202
docs/docker/swarm-cheatsheet
Normal file
@@ -0,0 +1,202 @@
|
||||
# Docker Swarm Cheatsheet
|
||||
|
||||
## Initialisation et Configuration du Swarm
|
||||
|
||||
```bash
|
||||
# Initialiser un nouveau swarm
|
||||
docker swarm init --advertise-addr <MANAGER-IP>
|
||||
|
||||
# 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 <TOKEN> <MANAGER-IP>:<PORT>
|
||||
|
||||
# Rejoindre un swarm en tant que manager
|
||||
docker swarm join --token <MANAGER-TOKEN> <MANAGER-IP>:<PORT>
|
||||
|
||||
# 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 <NODE-ID>
|
||||
|
||||
# Promouvoir un worker en manager
|
||||
docker node promote <NODE-ID>
|
||||
|
||||
# Rétrograder un manager en worker
|
||||
docker node demote <NODE-ID>
|
||||
|
||||
# Mettre un nœud en pause (drain)
|
||||
docker node update --availability drain <NODE-ID>
|
||||
|
||||
# Remettre un nœud en service
|
||||
docker node update --availability active <NODE-ID>
|
||||
|
||||
# Ajouter des labels à un nœud
|
||||
docker node update --label-add <KEY>=<VALUE> <NODE-ID>
|
||||
|
||||
# Supprimer un nœud du swarm
|
||||
docker node rm [--force] <NODE-ID>
|
||||
```
|
||||
|
||||
## Services
|
||||
|
||||
```bash
|
||||
# Créer un service
|
||||
docker service create --name <SERVICE-NAME> --replicas <NUM> <IMAGE>
|
||||
|
||||
# Créer un service avec des options avancées
|
||||
docker service create \
|
||||
--name <SERVICE-NAME> \
|
||||
--replicas <NUM> \
|
||||
--constraint node.role==manager \
|
||||
--publish <PORT>:<TARGET-PORT> \
|
||||
--mount type=volume,source=<VOLUME-NAME>,destination=<CONTAINER-PATH> \
|
||||
--env <ENV-VAR>=<VALUE> \
|
||||
--network <NETWORK-NAME> \
|
||||
<IMAGE>
|
||||
|
||||
# Lister tous les services
|
||||
docker service ls
|
||||
|
||||
# Voir les tâches d'un service (conteneurs)
|
||||
docker service ps <SERVICE-NAME>
|
||||
|
||||
# Inspecter un service
|
||||
docker service inspect <SERVICE-NAME>
|
||||
|
||||
# Mettre à jour un service
|
||||
docker service update \
|
||||
--image <NEW-IMAGE> \
|
||||
--replicas <NEW-NUM> \
|
||||
--update-parallelism <NUM> \
|
||||
--update-delay <SECONDS>s \
|
||||
<SERVICE-NAME>
|
||||
|
||||
# Faire une mise à jour progressive (rolling update)
|
||||
docker service update --update-parallelism 2 --update-delay 20s <SERVICE-NAME>
|
||||
|
||||
# Supprimer un service
|
||||
docker service rm <SERVICE-NAME>
|
||||
|
||||
# Mettre à l'échelle un service (scale)
|
||||
docker service scale <SERVICE-NAME>=<NUM-REPLICAS>
|
||||
|
||||
# Logs d'un service
|
||||
docker service logs <SERVICE-NAME>
|
||||
```
|
||||
|
||||
## Stacks
|
||||
|
||||
```bash
|
||||
# Déployer une stack depuis un fichier compose
|
||||
docker stack deploy -c <COMPOSE-FILE> <STACK-NAME>
|
||||
|
||||
# Lister toutes les stacks
|
||||
docker stack ls
|
||||
|
||||
# Lister les services d'une stack
|
||||
docker stack services <STACK-NAME>
|
||||
|
||||
# Lister les tâches d'une stack
|
||||
docker stack ps <STACK-NAME>
|
||||
|
||||
# Supprimer une stack
|
||||
docker stack rm <STACK-NAME>
|
||||
```
|
||||
|
||||
## Secrets
|
||||
|
||||
```bash
|
||||
# Créer un secret à partir d'un fichier
|
||||
docker secret create <SECRET-NAME> <FILE-PATH>
|
||||
|
||||
# Créer un secret à partir de l'entrée standard
|
||||
echo "secret-data" | docker secret create <SECRET-NAME> -
|
||||
|
||||
# Lister les secrets
|
||||
docker secret ls
|
||||
|
||||
# Inspecter un secret
|
||||
docker secret inspect <SECRET-NAME>
|
||||
|
||||
# Supprimer un secret
|
||||
docker secret rm <SECRET-NAME>
|
||||
|
||||
# Utiliser un secret dans un service
|
||||
docker service create \
|
||||
--name <SERVICE-NAME> \
|
||||
--secret <SECRET-NAME> \
|
||||
<IMAGE>
|
||||
```
|
||||
|
||||
## Configs
|
||||
|
||||
```bash
|
||||
# Créer une config à partir d'un fichier
|
||||
docker config create <CONFIG-NAME> <FILE-PATH>
|
||||
|
||||
# Lister les configs
|
||||
docker config ls
|
||||
|
||||
# Inspecter une config
|
||||
docker config inspect <CONFIG-NAME>
|
||||
|
||||
# Supprimer une config
|
||||
docker config rm <CONFIG-NAME>
|
||||
|
||||
# Utiliser une config dans un service
|
||||
docker service create \
|
||||
--name <SERVICE-NAME> \
|
||||
--config <CONFIG-NAME> \
|
||||
<IMAGE>
|
||||
```
|
||||
|
||||
## Réseaux Overlay
|
||||
|
||||
```bash
|
||||
# Créer un réseau overlay
|
||||
docker network create --driver overlay <NETWORK-NAME>
|
||||
|
||||
# Créer un réseau overlay chiffré
|
||||
docker network create --driver overlay --opt encrypted <NETWORK-NAME>
|
||||
|
||||
# Lister les réseaux
|
||||
docker network ls
|
||||
|
||||
# Inspecter un réseau
|
||||
docker network inspect <NETWORK-NAME>
|
||||
|
||||
# Supprimer un réseau
|
||||
docker network rm <NETWORK-NAME>
|
||||
```
|
||||
|
||||
## 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
|
||||
```
|
||||
Reference in New Issue
Block a user