1. Introduction
Dans le monde du développement et du déploiement d’applications, les conteneurs ont révolutionné la façon dont nous créons et livrons nos projets. Mais lorsqu’il faut gérer plusieurs conteneurs sur plusieurs serveurs, les choses se compliquent rapidement.
C’est là que Docker Swarm entre en jeu.
Docker Swarm est l’outil d’orchestration intégré à Docker qui permet de gérer facilement un cluster de machines (appelées nœuds) et d’y déployer des applications de manière fiable, évolutive et hautement disponible.
2. Concepts Clés à Comprendre
Avant de commencer, voici quelques notions simples :
-
Docker Host → Une machine (physique ou virtuelle) avec Docker installé.
-
Cluster → Ensemble de Docker hosts connectés ensemble et travaillant comme une seule unité.
-
Node (nœud) :
-
Service → Une application ou un groupe de conteneurs identiques que vous voulez exécuter.
-
Overlay Network → Réseau virtuel permettant aux conteneurs sur différents serveurs de communiquer.
-
Ingress Load Balancing → Permet d’accéder à vos services via n’importe quel nœud du cluster, même si le conteneur se trouve ailleurs.
3. Pourquoi Utiliser Docker Swarm ?
-
Facile à mettre en place (intégré à Docker, pas besoin d’outils supplémentaires)
-
Haute disponibilité : si un nœud tombe, les conteneurs sont redéployés ailleurs.
-
Scalabilité rapide : augmentez ou réduisez le nombre de conteneurs en une commande.
-
Réseau distribué intégré : communication transparente entre conteneurs, même sur plusieurs serveurs.
-
Load balancing automatique : distribution du trafic sans configuration complexe.
4. Installer et Initialiser un Swarm
Docker Swarm est inclus dans Docker.
Sur le premier serveur (manager) :
docker swarm init
Docker vous donnera une commande docker swarm join que vous exécuterez sur les autres serveurs pour les ajouter comme workers.
5. Premier Déploiement avec Docker Compose
Swarm peut utiliser vos fichiers docker-compose.yml (version 3+).
Exemple minimal :
version: "3.9"
services:
web: image: nginx:alpine
ports: - "80:80"
deploy: replicas: 3
networks:
default:
driver: overlay
Déploiement sur le cluster :
docker stack deploy -c docker-compose.yml mystack
6. Vérifier et Gérer vos Services
Voir la liste des services :
docker service ls
Voir où tournent les conteneurs :
docker service ps mystack_web
Changer le nombre de conteneurs à la volée :
docker service scale mystack_web=5
7. Résultat
-
Vos conteneurs sont répartis sur plusieurs serveurs
-
Un accès unique via n’importe quelle machine du cluster
-
Auto-récupération en cas de panne d’un conteneur ou d’un nœud
8. Conclusion
Docker Swarm est l’outil idéal pour débuter avec l’orchestration de conteneurs.
Il est plus simple à prendre en main que Kubernetes, tout en offrant les fonctionnalités essentielles : haute disponibilité, scalabilité et réseau distribué.