Comment créer un Docker Swarm
Oct 21, 2026
/
By Faradilla A.
/
11 minutes de lecture
Docker Swarm est un outil d’orchestration de conteneurs qui permet de gérer plusieurs moteurs Docker comme un seul système. Il permet de déployer et de gérer des applications conteneurisées sur plusieurs machines. Votre application peut ainsi continuer de fonctionner même si l’une de ces machines tombe en panne ou devient inaccessible.
Ce tutoriel vous explique comment créer un Docker Swarm et déployer des services sur plusieurs serveurs privés virtuels (VPS). À l’issue de ce guide, vous saurez mettre en place et gérer un cluster évolutif et à haute disponibilité avec Docker Swarm.
Prérequis
Avant de créer un Docker Swarm, préparez au moins deux machines : une pour le nœud manager et une autre pour le nœud worker. Il peut s’agir d’ordinateurs personnels, de machines virtuelles, de VPS ou de tout autre environnement compatible.
Dans ce tutoriel, nous utiliserons trois VPS du service d’hébergement Docker de Hostinger : un pour le nœud manager et les deux autres pour les nœuds workers.
Docker nécessite au moins 4 Go de RAM pour fonctionner correctement. Notre pack KVM 1, disponible à partir de 5,49 €/mois et comprenant un cœur de processeur, 4 Go de RAM et 50 Go de stockage NVMe, devrait donc suffire.
Vous pouvez passer à un pack supérieur à tout moment si vous avez besoin de davantage de puissance de calcul ou d’espace de stockage. L’hébergement Docker de Hostinger présente un autre avantage : Docker et tous ses composants essentiels sont préinstallés. Vous n’avez donc rien à installer manuellement.

Une fois vos VPS prêts, nous vous conseillons de leur attribuer des noms d’hôte correspondant à leur rôle dans le cluster. Cette étape est facultative, mais des noms personnalisés rendent les informations plus lisibles et facilitent l’identification de chaque nœud.
Pour modifier le nom d’hôte d’un VPS chez Hostinger, accédez à Tableau de bord Hostinger → VPS → Gérer → Aperçu → Détails du VPS. Cliquez ensuite sur l’icône en forme de crayon à côté du nom d’hôte actuel, puis renommez les instances comme suit :
- Nœud manager – manager.vps
- Nœud worker 1 – worker1.vps
- Nœud worker 2 – worker2.vps

Si vous avez configuré le pare-feu Uncomplicated Firewall (UFW) sur vos VPS, autorisez les ports suivants pour permettre aux nœuds du cluster de communiquer entre eux :
- 2377 TCP – pour la gestion du cluster et la communication entre les nœuds.
- 7946 TCP/UDP – pour la communication entre les nœuds du cluster.
- 4789 UDP – pour le trafic du réseau overlay entre les conteneurs situés sur différents nœuds.
Si vous n’avez pas configuré UFW ou si vous venez d’acheter vos VPS, passez cette étape.
Pour autoriser le trafic sur les ports nécessaires, ouvrez un terminal sur chaque instance et exécutez les commandes suivantes :
sudo ufw allow 2377/tcp sudo ufw allow 7946/tcp sudo ufw allow 7946/udp sudo ufw allow 4789/udp
Vérifiez ensuite qu’UFW est actif et que les règles sont bien appliquées :
sudo ufw status
Il est également utile de connaître les commandes de base de l’interface en ligne de commande (CLI) de Docker, car vous les utiliserez pour gérer les services du cluster. Consultez notre aide-mémoire Docker, qui regroupe les commandes les plus courantes pour différentes opérations.
Comment créer un Docker Swarm
Pour créer un cluster Docker Swarm, commencez par initialiser une machine en tant que nœud manager, puis connectez les autres machines en tant que nœuds workers. Vous pourrez ensuite déployer des services dans le cluster et utiliser les commandes de l’interface en ligne de commande (CLI) de Docker pour effectuer des opérations telles que la mise à l’échelle ou les mises à jour progressives.
Suivez les étapes ci-dessous pour créer votre Docker Swarm et gérer des services sur plusieurs instances.
Vous devrez intervenir aussi bien sur le nœud manager que sur les nœuds workers. Vérifiez bien sur quel nœud exécuter chaque étape : certaines opérations s’effectuent uniquement sur le manager, tandis que d’autres concernent les workers.
1. Installez Docker sur toutes les instances
À exécuter sur : tous les nœuds.
Comme indiqué dans les prérequis, Docker est préinstallé sur les packs d’hébergement Docker de Hostinger. Si ce n’est pas le cas dans votre environnement, vous devez installer Docker sur tous les nœuds avant de configurer le cluster.
Une fois l’installation terminée, vérifiez que Docker est bien installé en exécutant :
docker --version
Le résultat devrait ressembler à ceci :

Vérifiez ensuite que le service Docker est en cours d’exécution :
sudo systemctl status docker
L’état active (running) devrait apparaître, confirmant que le daemon Docker fonctionne correctement.

Pour quitter l’affichage de l’état du service, appuyez sur Ctrl + C.
2. Initialisez le nœud manager du cluster
À exécuter sur : le nœud manager.
Une fois Docker installé sur tous les nœuds, passez au nœud manager : c’est sur cette machine que vous allez créer le cluster Docker Swarm. Commencez par identifier son adresse IP.
Si vous utilisez un VPS Hostinger, vous trouverez cette adresse dans la section Détails du VPS de la page Aperçu, au même endroit que le nom d’hôte modifié précédemment.
Une fois l’adresse IP récupérée, exécutez la commande suivante pour initialiser le cluster. Remplacez [manager node’s IP] par l’adresse IP réelle de votre VPS :
docker swarm init --advertise-addr [manager node's IP]
Vous obtiendrez un résultat similaire à celui-ci :

Copiez et conservez la commande docker swarm join générée. Vous en aurez besoin pour connecter les nœuds workers au cluster.
Pour vérifier que le cluster a bien démarré, exécutez :
docker info
Cette commande affiche notamment des informations sur l’état du cluster.

Affichez ensuite la liste des nœuds du cluster :
docker node ls
Vous devriez voir plusieurs informations sur chaque nœud, notamment son identifiant, son nom d’hôte, son état, sa disponibilité et son rôle.

Conseil de pro
Si vous souhaitez ajouter des nœuds, mais que vous avez perdu le jeton de connexion, exécutez la commande suivante sur le nœud manager pour l’afficher à nouveau :
docker swarm join-token worker
3. Ajoutez des nœuds workers
À exécuter sur : les nœuds worker1 et worker2.
Connectez-vous maintenant au nœud worker1 et exécutez la commande de connexion que vous avez copiée sur le manager :
docker swarm join --token [join token] [manager node's IP]:2377
Si le message This node joined a swarm as a worker apparaît, le nœud a bien rejoint le cluster.

Répétez l’opération sur worker2, puis sur tout autre nœud que vous souhaitez ajouter au cluster.
Conseil de pro
Chaque fois que vous ajoutez un nœud, revenez sur le nœud manager et exécutez docker node ls pour vérifier qu’il a bien rejoint le cluster.
4. Déployez votre premier service
À exécuter sur : le nœud manager.
Revenez sur le nœud manager pour déployer un service de test nommé hello-world. Vous supprimerez ce service à l’étape suivante, mais cet exercice vous permettra de vous familiariser avec la gestion des services dans Docker Swarm.
Pour créer le service hello-world, exécutez la commande suivante :
docker service create --replicas 1 --name hello-world alpine ping docker.com
- docker service create – lance la création d’un service dans Docker Swarm.
- –replicas 1 – définit le nombre de répliques du service à exécuter, ici 1.
- –name hello-world – attribue le nom hello-world au service.
- alpine ping docker.com – utilise l’image Docker alpine pour envoyer une requête ping à docker.com, à titre de test.

Affichez ensuite la liste des services en cours d’exécution dans le cluster :
docker service ls

5. Examinez les services et ajustez leur nombre de répliques
À exécuter sur : le nœud manager.
Après avoir déployé votre service de test, vous allez examiner ses caractéristiques et ajuster son nombre de répliques dans le cluster.
Consultez les détails du service
Pour afficher les informations du service hello-world, exécutez la commande suivante :
docker service inspect --pretty hello-world
Vous obtiendrez des informations détaillées sur le service, notamment son identifiant, le nombre de répliques et ses autres paramètres. L’option –pretty présente le résultat dans un format plus lisible.

Vérifiez sur quels nœuds le service s’exécute
Pour savoir sur quels nœuds le service s’exécute, utilisez :
docker service ps hello-world
Cette commande affiche toutes les tâches associées au service hello-world, ainsi que les nœuds sur lesquels elles s’exécutent.

Augmentez le nombre de répliques du service
Pour mettre le service à l’échelle, modifiez son nombre de répliques. Par exemple, pour exécuter trois répliques de hello-world, utilisez :
docker service scale hello-world=3
Docker Swarm créera alors des répliques supplémentaires du service sur les nœuds disponibles.

Vérifiez la nouvelle répartition des tâches
Après avoir augmenté le nombre de répliques, vérifiez comment les tâches sont réparties entre les nœuds :
docker service ps hello-world
Vous devriez constater que les tâches sont désormais réparties de manière équilibrée entre les trois nœuds, contrairement à ce que vous aviez observé lors de la première exécution de cette commande.

Supprimez le service
Une fois le service examiné et mis à l’échelle, supprimez-le du cluster en exécutant :
docker service rm hello-world
Cette commande supprime le service hello-world du cluster en toute sécurité.

Vérifiez la suppression du service
Pour confirmer que le service a bien été supprimé du cluster, exécutez :
docker service ls
Si la suppression a réussi, le service hello-world n’apparaîtra plus dans la liste.
6. Effectuez des mises à jour progressives des services
À exécuter sur : le nœud manager.
Les mises à jour progressives permettent de mettre à jour des services sans interruption. Docker Swarm met à jour les répliques une par une et ne passe à la suivante qu’une fois la mise à jour de la précédente terminée.
Vous allez d’abord déployer un service utilisant l’image Docker Redis avec le tag 7.4.0, puis le mettre à jour vers la version 7.4.1 en procédant par mise à jour progressive.
Déployez un service Redis
Commencez par déployer un service utilisant une ancienne version de l’image Docker Redis, que vous pourrez ensuite mettre à jour :
docker service create --name redis --replicas 3 redis:7.4.0

Mettez à jour le service
Pour mettre à jour le service, exécutez la commande suivante en indiquant une version plus récente de l’image Redis :
docker service update --image redis:7.4.1 redis
Docker Swarm remplacera progressivement les anciens conteneurs par ceux utilisant la nouvelle version, afin d’assurer une mise à jour sans interruption de service.
Vérifiez la version du service après la mise à jour
Pour vérifier la version du service et confirmer qu’il utilise bien la nouvelle image, exécutez :
docker service inspect --pretty redis

Vérifiez sur quels nœuds le service s’exécute
Pour suivre la mise à jour progressive et identifier les conteneurs encore en cours d’exécution et ceux qui sont en cours de remplacement, utilisez :
docker service ps redis
La liste des tâches du service s’affiche. Dans la colonne indiquant l’état souhaité, vous verrez Running pour les conteneurs mis à jour et Shutdown pour les anciens.

7. Verrouillez votre Docker Swarm
À exécuter sur : le nœud manager.
Le verrouillage d’un cluster Docker Swarm impose l’utilisation d’une clé de chiffrement pour le déverrouiller et modifier sa configuration. Cette protection permet de réserver l’accès et les modifications du cluster aux utilisateurs autorisés et d’empêcher les modifications non autorisées.
Vous n’avez pas besoin de déverrouiller le cluster pour simplement y ajouter un nouveau nœud.
Activez le verrouillage automatique du cluster
Vous pouvez activer le verrouillage dès l’initialisation du cluster en ajoutant l’option –autolock, comme ceci :
docker swarm init --autolock --advertise-addr [manager node's IP]
Comme vous n’avez pas activé cette option lors de l’initialisation, vous pouvez également verrouiller le cluster existant avec la commande suivante :
docker swarm update --autolock=true
Cette commande active le verrouillage automatique du cluster à chaque redémarrage. Elle génère également une clé de déverrouillage, que vous devez conserver en lieu sûr.

Pour désactiver le verrouillage automatique, remplacez simplement la valeur true par false dans l’option –autolock.
Récupérez la clé de déverrouillage
Si vous avez oublié de conserver la clé lors de l’activation du verrouillage automatique, vous pouvez la récupérer en exécutant :
docker swarm unlock-key
Déverrouillez le cluster
Vous devez déverrouiller le cluster pour redémarrer le service Docker ou effectuer des opérations de maintenance sur le nœud manager. Pour cela, exécutez :
docker swarm unlock
Vous serez alors invité à saisir la clé de déverrouillage que vous avez conservée précédemment.
Lectures conseillées
Pour protéger les données sensibles, utilisez les secrets de build Docker (Docker build secrets). Ils ne sécurisent pas directement le cluster, mais contribuent à protéger vos identifiants et autres informations sensibles pendant la construction des images et l’exécution des conteneurs.
8. Gérez et entretenez les nœuds
À exécuter sur : le nœud manager.
La gestion d’un cluster Docker Swarm nécessite de vérifier régulièrement la disponibilité et le rôle de chaque nœud. Ces vérifications contribuent à maintenir le cluster en bon état de fonctionnement et à éviter les interruptions.
Examinez les informations d’un nœud
Pour consulter les informations détaillées d’un nœud, exécutez la commande suivante en remplaçant [node name] par le nom du nœud concerné :
docker node inspect [node name]
Vous verrez son état actuel, sa disponibilité et son rôle au sein du cluster.

Mettez un nœud en mode drain
Le mode drain rend un nœud indisponible pour l’attribution de nouvelles tâches. Vous pouvez ainsi effectuer des opérations de maintenance sans perturber le fonctionnement du cluster :
docker node update --availability drain [node name]
Cette commande empêche l’attribution de nouvelles tâches au nœud et entraîne le déplacement des tâches existantes vers d’autres nœuds.
Mettez un nœud en pause
Le mode pause empêche également l’attribution de nouvelles tâches à un nœud, mais permet aux tâches existantes de continuer à s’exécuter. Pour l’activer, utilisez :
docker node update --availability pause [node name]
Cette option est utile lorsque vous souhaitez suspendre temporairement l’attribution de nouvelles tâches à un nœud sans interrompre celles qui sont déjà en cours d’exécution.

Réactivez un nœud en mode drain ou pause
Une fois la maintenance terminée, rétablissez le fonctionnement normal du nœud en faisant passer sa disponibilité de drain ou pause à active :
docker node update --availability active [node name]
Attribuez le rôle de manager à un nœud
Pour permettre à un nœud de gérer le cluster, attribuez-lui le rôle de manager à l’aide de cette commande :
docker node promote [node name]

Rétrogradez un nœud manager en worker
Lors d’une réorganisation ou d’une opération de maintenance, vous pouvez avoir besoin de retirer le rôle de manager à un nœud pour qu’il redevienne un worker. Dans ce cas, exécutez :
docker node demote [node name]

Conseil de pro
Plutôt que de gérer les nœuds un par un, vous pouvez modifier le rôle de plusieurs nœuds avec une seule commande. Par exemple, pour attribuer le rôle de manager aux nœuds worker1 et worker2, exécutez :
docker node promote worker1 worker2
9. Faites quitter les nœuds et supprimez le cluster
À exécuter sur : les nœuds worker1, worker2 et manager.
Pour terminer, voyons comment retirer des nœuds du cluster Docker Swarm et, si nécessaire, supprimer l’ensemble du cluster.
Faites quitter le cluster à un nœud worker
Sur le nœud worker1, exécutez la commande suivante pour lui faire quitter le cluster en toute sécurité :
docker swarm leave

Répétez l’opération sur les autres nœuds que vous souhaitez retirer du cluster.
Retirez les nœuds de la liste du cluster
Une fois qu’un nœud worker a quitté le cluster, retirez-le de la liste des nœuds depuis le nœud manager :
docker node rm [node name]
Docker Engine ne lui attribuera alors plus de tâches. Vous pouvez également retirer plusieurs nœuds avec une seule commande en indiquant leurs noms :
docker node rm [node name 1] [node name 2]

Supprimez le cluster
Il n’existe pas de commande spécifique pour supprimer entièrement un cluster Docker Swarm. Vous pouvez toutefois forcer le dernier nœud manager à quitter le cluster, ce qui mettra fin à son fonctionnement :
docker swarm leave --force
Assurez-vous que ce nœud est bien le dernier du cluster. Si d’autres nœuds managers sont encore présents, cette commande ne supprimera pas le cluster.
Conclusion
Docker Swarm facilite le déploiement, la mise à l’échelle et la mise à jour d’applications conteneurisées sur plusieurs machines, tout en contribuant à maintenir une infrastructure à haute disponibilité et résiliente.
Dans ce tutoriel, nous avons vu comment créer et gérer un Docker Swarm de A à Z :
- Préparer les instances VPS et y installer Docker.
- Initialiser le nœud manager du cluster.
- Ajouter des nœuds workers au cluster.
- Déployer un service de test pour se familiariser avec la gestion des services.
- Examiner le service et augmenter son nombre de répliques pour observer la répartition des tâches.
- Effectuer des mises à jour progressives sans interruption de service.
- Verrouiller le cluster pour renforcer sa sécurité.
- Gérer les nœuds et assurer leur maintenance.
- Retirer les nœuds et supprimer le cluster.
Pour aller plus loin, essayez de déployer une véritable application sur votre cluster, de configurer NGINX comme proxy inverse pour gérer le trafic ou de découvrir les stacks Docker afin de créer une infrastructure plus évolutive et plus facile à maintenir.
FAQ sur la création d’un cluster Docker Swarm
Qu’est-ce que Docker Swarm ?
Docker Swarm est un outil natif de clustering et d’orchestration qui permet de gérer plusieurs moteurs Docker comme un seul système virtuel. Il facilite le déploiement, la mise à l’échelle et la maintenance d’applications conteneurisées, avec une haute disponibilité et une répartition de charge intégrée entre plusieurs nœuds.
Comment ajouter des nœuds à un Docker Swarm ?
Pour ajouter un nœud, commencez par générer un jeton de connexion sur le nœud manager à l’aide de la commande docker swarm join-token worker. Exécutez ensuite la commande docker swarm join sur le nouveau nœud pour le connecter au cluster. Le nœud rejoindra alors automatiquement le cluster.
Peut-on créer un Docker Swarm sur plusieurs hôtes ?
Oui, Docker Swarm est conçu pour fonctionner sur plusieurs hôtes. Vous pouvez créer un cluster à partir de machines réparties sur différents hôtes ou chez plusieurs fournisseurs de services cloud. Une fois connectées, ces machines forment un seul cluster, ce qui vous permet d’exécuter des services sur plusieurs hôtes grâce à la répartition intégrée des services.
Cet article est une version localisée de How to create a Docker Swarm, initialement publié en anglais.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.
Commentaires
0 responses