Docker Swarm · 9 min read · Oct 05, 2025

Comment installer Docker Swarm sur Ubuntu 22.04

Docker Swarm est une orchestration de conteneurs construite sur Docker Engine. Il vous permet de créer et de déployer un cluster de nœuds Docker sur plusieurs serveurs. Docker Swarm simplifie le déploiement de votre application conteneurisée en un service. Il fournit un moyen simple et facile de gérer et d’orchestrer des conteneurs.

Docker Swarm offre un haut niveau d’applications disponibles. Dans Docker Swarm, vous pouvez exécuter une seule application ou service sur plusieurs nœuds, qui sont appelés « Nœuds de travail ». Et il y a aussi un nœud appelé « Gestionnaire de Swarm », qui est la gestion centrale et l’orchestration de Docker Swarm.

Dans ce tutoriel, nous vous montrerons comment installer le logiciel Docker Swarm sur des serveurs Ubuntu 22.04 étape par étape.

Prérequis

Pour compléter ce guide, assurez-vous d’être équipé des éléments suivants :

  • 3 serveurs Ubuntu 22.04 - Un sera utilisé comme Maître/Gestionnaire de Swarm, et deux serveurs seront utilisés comme Nœuds de travail.
  • Un utilisateur non-root avec des privilèges d’administrateur sudo.

Configuration des systèmes

Avant d’installer Docker et de configurer Docker Swarm, vous devez préparer vos systèmes en complétant les tâches suivantes :

  • Ouvrir les ports pour Docker Swarm : Vous devez ouvrir certains ports utilisés par Docker Swarm sur tous vos serveurs. Cela peut être réalisé via UFW (Uncomplicated Firewall).
  • Ajouter le dépôt Docker : Vous utiliserez le dépôt officiel de Docker pour installer Docker Engine sur tous vos serveurs.

Ouvrir les ports pour Docker Swarm

Dans la section suivante, vous ouvrirez le port 22 pour SSH, puis les ports 2377, 7946 et 4789 pour Docker Swarm via UFW (Uncomplicated Firewall) sur le Maître/Gestionnaire de Swarm et les Nœuds de Swarm. UFW est installé par défaut, mais pas encore démarré.

Tout d’abord, exécutez la commande ufw ci-dessous pour ajouter le profil d’application OpenSSH et ouvrir le port SSH par défaut 22. Ensuite, démarrez et activez UFW.

sudo ufw allow OpenSSH  
sudo ufw enable

Tapez y pour continuer, et vous devriez obtenir la sortie Le pare-feu est actif et activé au démarrage du système.

enable ufw

Maintenant, exécutez la commande ci-dessous pour ouvrir les ports qui seront utilisés par les services sur votre déploiement Swarm. Dans ce cas, vous allouerez des ports entre 30000:35000 pour les services.

sudo ufw allow 30000:35000/tcp

Ensuite, exécutez la commande suivante pour ouvrir les ports pour Docker Swarm.

for ports in 2377/tcp 7946/tcp 7946/udp 4789/udp  
do  
sudo ufw allow $ports  
done

setup ufw

Enfin, rechargez UFW et vérifiez l’état de UFW en exécutant la commande ci-dessous.

sudo ufw reload  
sudo ufw status

Vous devriez voir le profil d’application OpenSSH, et les ports pour Docker Swarm y compris 2377, 7946 et 4789 activés sur UFW.

verify ufw

Ajouter le dépôt Docker

Après avoir configuré UFW, vous devez ajouter le dépôt officiel de Docker à vos serveurs. Vous utiliserez le dépôt officiel de Docker pour installer Docker Engine.

Exécutez la commande ci-dessous pour installer quelques paquets de base sur vos serveurs Ubuntu.

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

install basic deps

Ensuite, exécutez la commande ci-dessous pour ajouter la clé GPG de Docker et le dépôt à vos systèmes.

sudo install -m 0755 -d /etc/apt/keyrings  
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg  
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \  
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \  
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \  
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Enfin, mettez à jour et rafraîchissez votre dépôt Ubuntu sur chaque serveur en exécutant la commande ci-dessous.

sudo apt update

Vous devriez voir le dépôt Docker être récupéré pendant le processus.

update repo

Installer Docker Engine

Après avoir préparé vos systèmes Ubuntu, vous allez installer Docker Engine sur ces serveurs.

Installez Docker Engine sur vos systèmes Ubuntu en utilisant la commande ci-dessous. Entrez y pour confirmer l’installation.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

install docker

Une fois l’installation terminée, exécutez la commande systemctl ci-dessous pour vérifier le service docker et vous assurer que le service est en cours d’exécution.

sudo systemctl is-enabled docker  
sudo systemctl status docker

Dans la sortie suivante, vous devriez voir que le service docker est en cours d’exécution et activé.

check docker service

(Optionnel) : Autoriser les utilisateurs non-root à exécuter des conteneurs Docker

Si vous déployez Docker Swarm et exécutez des conteneurs en utilisant un utilisateur non-root, vous devez ajouter votre utilisateur au groupe docker afin que l’utilisateur puisse exécuter la commande docker et exécuter des conteneurs.

Exécutez la commande usermod ci-dessous pour ajouter votre utilisateur actuel au groupe docker.

sudo usermod -aG docker username

Maintenant, connectez-vous en tant qu’utilisateur non-root et exécutez la commande docker ci-dessous pour vérifier votre configuration.

su - username  
docker run hello-world

Si la configuration est réussie, vous devriez être en mesure d’exécuter le conteneur hello-world et obtenir la sortie suivante :

docker hello-world

Créer Docker Swarm

Maintenant que vous avez installé Docker Engine, vous êtes prêt à créer et démarrer Docker en utilisant vos serveurs Ubuntu. Dans cet exemple, nous utiliserons un serveur comme Maître/Gestionnaire de Swarm et deux serveurs comme Nœuds de travail.

Complétez les tâches suivantes pour configurer Docker Swarm :

  • Initialiser le mode Swarm sur le Maître/Gestionnaire.
  • Ajouter des Nœuds de travail au Docker Swarm.

Commençons.

Initialiser le mode Swarm sur le Maître/Gestionnaire

Pour initialiser Docker Swarm, exécutez la commande docker swarm init ci-dessous. Le paramètre supplémentaire –advertise-addr liera Docker Swarm à l’adresse IP spécifique, et le paramètre –default-addr-pool détermine l’adresse IP interne pour les conteneurs qui s’exécutent sur le Swarm.

Dans cet exemple, le mode Docker Swarm sera lié à l’adresse IP 192.168.5.30 et le pool d’adresses IP pour les conteneurs est 10.20.0.0/16.

docker swarm init --advertise-addr 192.168.5.30 --default-addr-pool 10.20.0.0/16

Si le processus d’initialisation est réussi, la sortie suivante sera affichée. Dans la sortie, vous devriez voir le jeton généré pour ajouter des Nœuds à Docker Swarm.

Ensuite, exécutez la commande suivante pour vérifier l’état du mode Swarm.

docker info

Si le mode Swarm est activé, vous devriez obtenir la sortie Swarm : active avec les détails de NodeID, et l’état de Manager et Node.

check swarm mode

Enfin, exécutez la commande ci-dessous pour vérifier la liste des Nœuds sur le Docker Swarm.

docker node ls

À ce stade, un seul Nœud est disponible sur votre Docker Swarm, qui est le Maître/Gestionnaire de Swarm.

Ajouter des Nœuds de travail au Docker Swarm

Avec Docker Swarm initialisé, vous pouvez ajouter des nœuds de travail à votre Docker Swarm.

Tout d’abord, exécutez la commande ci-dessous pour afficher le jeton généré pour le nœud de travail.

docker swarm join-token worker

Vous devriez voir des instructions pour ajouter des nœuds de travail, qui incluent le jeton.

Maintenant, déplacez-vous vers le nœud de travail et ajoutez le nœud de travail au Docker Swarm en exécutant la commande docker swarm join ci-dessous.

docker swarm join --token SWMTKN-1-0i6kbe2oek1iw19jfpvd2j5l0dhfmssz4w505aeihx7ouz8wqc-2dbk7cnmo12uunj53eywwnqr7 192.168.5.30:2377

Lorsque le processus est réussi, la sortie ‘Ce nœud a rejoint un swarm en tant que travailleur’ sera imprimée sur votre écran.

Ensuite, revenez au Maître/Gestionnaire de Swarm et exécutez la commande ci-dessous pour vérifier la liste des nœuds disponibles.

docker node ls

Si tout se passe bien, il y aura trois serveurs disponibles sur le Docker Swarm, 1 le Gestionnaire de Swarm et 2 nœuds de travail avec le statut Prêt et la disponibilité en cours d’exécution.

Exécuter un service dans Docker Swarm

À ce stade, vous avez réussi à créer Docker Swarm avec trois serveurs Ubuntu. Maintenant, vous allez apprendre à déployer votre application dans le Docker Swarm, ce qui s’appelle un service. Un service est une image de votre application microservice, et cela pourrait être un serveur HTTP, un serveur de base de données ou d’autres applications.

Dans cet exemple, vous déploierez un service HTTP simple avec une image Nginx.

Exécutez la commande ci-dessous pour créer un nouveau service sur votre Swarm. Dans cet exemple, vous créerez un nouveau service test-nginx avec 1 réplique, exposant le port 30001, et basé sur l’image nginx:alpine.

docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine

Maintenant, vérifiez les détails du service test-nginx en utilisant la commande ci-dessous.

docker service inspect test-nginx  
docker service inspect --pretty test-nginx

Vous devriez voir des informations détaillées sur le service test-nginx comme suit.

check service

Ensuite, vérifiez la liste des services Docker dans le Docker Swarm en utilisant la commande ci-dessous.

docker service ls  
docker service ps test-nginx

Si cela réussit, vous devriez voir le service test-nginx en cours d’exécution sur le NŒUD gestionnaire avec 1 réplique et le port exposé 30001.

check service detail

Enfin, accédez au service test-nginx via l’adresse IP de l’hôte avec le port 30001 en utilisant la commande curl ci-dessous.

curl 192.168.5.30:30001  
curl -I 192.168.5.30:30001

Vous devriez voir le code source de la page index.html et les détails des en-têtes HTTP.

check nginx service

Mise à l’échelle du service dans Docker Swarm

Maintenant que vous avez déployé le service Docker, la prochaine tâche est de mettre à l’échelle le service sur Docker Swarm. Cela créera la réplication souhaitée de vos services sur les nœuds de travail.

Pour mettre à l’échelle un service, exécutez la commande docker service scale ci-dessous. Dans ce cas, vous mettrez à l’échelle le service test-nginx à 3 répliques.

docker service scale test-nginx=3

scale service

Maintenant, exécutez la commande ci-dessous pour vérifier le service test-nginx. Si le service test-nginx a été mis à l’échelle, vous devriez voir deux autres services créés par Docker et en cours d’exécution sur les deux nœuds de travail.

docker service ps test-nginx

Déplacez-vous vers le terminal du nœud de travail et exécutez la commande suivante pour vous assurer que le service test-nginx est en cours d’exécution.

docker ps  
curl 192.168.5.31:30001

Si tout se passe bien, vous devriez voir le conteneur test-nginx.RANDOM-STRING avec le statut En cours d’exécution sur chacun des nœuds de travail.

check service worker1

check service worker2

Supprimer le service dans Docker Swarm

Pour nettoyer votre environnement, vous allez supprimer le service test-nginx de Docker Swarm et supprimer l’image docker nginx:alpine.

Supprimez le service test-nginx et vérifiez la liste des services disponibles sur Docker Swarm en utilisant la commande suivante.

docker service rm test-nginx  
docker service ps

Maintenant, supprimez l’image nginx:alpine et vérifiez la liste des images téléchargées pour chaque serveur en utilisant la commande ci-dessous.

docker rmi nginx:alpine  
docker images

Conclusion

Pour conclure, vous avez maintenant réussi à installer Docker Swarm sur Ubuntu 22.04 étape par étape. Vous avez déployé Docker Swarm avec trois serveurs Ubuntu et appris à déployer, mettre à l’échelle et supprimer des applications ou des services sur Docker Swarm.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.