Le mode Swarm

docker swarm init transforme des moteurs Docker en cluster : les managers gardent l'état souhaité et planifient le travail, les workers l'exécutent. Tu décris des services ; le cluster les maintient en marche sur les nœuds.

Comment ça marche

Les nœuds rejoignent le cluster avec un jeton (docker swarm join). docker node ls les liste avec leur état (Ready, Down), leur disponibilité (Active, Pause, Drain) et leur statut de manager (Leader, Reachable). docker stack deploy -c stack.yaml nom lit un fichier Compose et crée un service par entrée ; deploy: est respecté, build: et depends_on: sont ignorés. Chaque nœud garde ses propres images, conteneurs et volumes.

Ce qui casse

Traiter le cluster comme un seul gros serveur : une image construite sur le manager, un volume créé sur un nœud, un fichier dans un dossier du manager sont invisibles pour les autres nœuds. Vider un nœud (docker node update --availability drain) déplace ses tâches, et montre aussitôt ce qui ne pouvait tourner nulle part ailleurs.

Dans un terminal

docker node ls
docker node update --availability drain manager-1
docker stack deploy -c stack.yaml shop
docker stack ps shop

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.