Docker Swarm · 4 min read · Feb 07, 2026

Comment configurer et configurer un cluster Docker Swarm sur Ubuntu

Docker Swarm est un outil qui vous permet de déployer un cluster d’hôtes Docker. C’est un outil de clustering natif fourni par Docker qui offre une haute disponibilité et des performances élevées pour votre application en la distribuant à tous les nœuds à l’intérieur du cluster swarm.

Dans ce tutoriel, nous allons vous montrer étape par étape comment créer un cluster Swarm en utilisant Ubuntu 16.04. Nous allons créer un cluster swarm en utilisant 2 machines serveur Ubuntu, 1 nœud serveur en tant que gestionnaire et 1 autre en tant que travailleur. Ensuite, nous allons essayer de déployer le service Nginx simple sur le cluster swarm.

Prérequis

  • 2 ou plus - Ubuntu 16.04 Server - gestionnaire     132.92.41.4
  • worker01   132.92.41.5
  • Privilèges root

Que allons-nous faire ?

  1. Configurer les hôtes
  2. Installer Docker-ce
  3. Initialisation de Docker Swarm
  4. Déploiement du premier service sur le cluster

Étape 1 - Configurer les hôtes

Avant d’installer des packages pour le cluster swarm, nous allons configurer le fichier hosts sur les deux serveurs.

Exécutez les commandes ci-dessous sur tous les serveurs, ‘gestionnaire’ et ‘worker01’.

Éditez le fichier ‘/etc/hosts’ en utilisant l’éditeur vim.

vim /etc/hosts

Ajoutez la configuration suivante à la fin de la ligne.

132.92.41.4    gestionnaire  
132.92.41.5    worker01

Enregistrez et quittez.

Maintenant, pinguez tous les nœuds en utilisant ‘hostname’ au lieu d’utiliser l’adresse IP.

ping -c 3 gestionnaire  
ping -c 3 worker01

Et assurez-vous que cela fonctionne sur tous les hôtes.

Configurer les hôtes

Étape 2 - Installer Docker-ce

Pour créer le cluster swarm, nous devons installer Docker sur tous les nœuds serveur. Dans cette étape, nous allons installer Docker-ce Community Edition sur les deux serveurs gestionnaire et worker01.

Installez les dépendances de Docker-ce en utilisant la commande apt ci-dessous.

sudo apt install apt-transport-https software-properties-common ca-certificates -y

Ajoutez maintenant la clé Docker et le dépôt Docker-ce à nos serveurs.

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -  
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list

Mettez à jour le dépôt et installez les packages Docker-ce en utilisant la commande apt install ci-dessous.

sudo apt update  
sudo apt install docker-ce -y

Après l’installation, démarrez le service docker et activez-le pour qu’il se lance à chaque démarrage du système.

systemctl start docker  
systemctl enable docker

Docker-ce est maintenant installé sur nos nœuds serveur.

Ensuite, nous allons configurer Docker pour qu’il s’exécute en tant qu’utilisateur normal ou utilisateur non-root.

Créez un nouvel utilisateur nommé ‘mohammad’ et ajoutez-le au groupe ‘docker’.

useradd -m -s /bin/bash mohammad  
sudo usermod -aG docker mohammad

Connectez-vous maintenant à l’utilisateur ‘mohammad’ et exécutez la commande docker hello-world comme ci-dessous.

su - mohammad  
docker run hello-world

Et vous obtiendrez le hello world de Docker comme montré ci-dessous.

Installer Docker-ce

Étape 3 - Créer le cluster Swarm

Dans cette étape, nous allons créer le cluster Swarm de nos nœuds. Et pour créer les nœuds du cluster swarm, nous devons initialiser le mode swarm sur le nœud ‘gestionnaire’ puis rejoindre le nœud ‘worker01’ au cluster.

Initialisez le mode Docker Swarm en exécutant la commande docker ci-dessous sur le nœud ‘gestionnaire’.

docker swarm init --advertise-addr 132.92.41.4

Et vous obtiendrez le résultat comme montré ci-dessous.

Vous verrez que ‘join-token’ a été généré par le nœud ‘gestionnaire’.

Ensuite, nous devons ajouter le nœud ‘worker01’ au cluster ‘gestionnaire’. Et pour cela, nous avons besoin d’un ‘join-token’ du nœud ‘gestionnaire’ du cluster, alors assurez-vous de l’écrire sur votre note.

Exécutez la commande docker swarm join sur le nœud ‘worker01’.

docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377

Maintenant, vous obtiendrez le résultat comme montré ci-dessous.

Le nœud ‘worker01’ a été rejoint au cluster.

Vérifiez-le en exécutant la commande suivante sur le nœud ‘gestionnaire’.

docker node ls

Maintenant, vous voyez que le nœud ‘worker01’ a été rejoint au cluster swarm.

Le cluster Swarm a été créé.

Étape 4 - Déploiement du premier service sur le cluster

Dans cette étape, nous allons créer et déployer notre premier service sur le cluster swarm. Nous voulons créer un nouveau service serveur web Nginx qui s’exécutera sur le port http par défaut 80, puis l’exposer au port 8080 sur le serveur hôte, et ensuite essayer de répliquer le service nginx à l’intérieur du cluster swarm.

Créer le service

Créez un nouveau service Nginx nommé ‘my-web’ et exposez le port HTTP du conteneur au port 8080 sur l’hôte.

docker service create --name my-web --publish 8080:80 nginx:1.13-alpine

Et lorsqu’il est créé, vérifiez en utilisant la commande docker service ci-dessous.

docker service ls

Et vous obtiendrez le résultat comme montré ci-dessous.

Le service Nginx a été créé et déployé sur le cluster swarm en tant que service nommé ‘my-web’, il est basé sur Nginx Alpine Linux, expose le port HTTP du service conteneur au port ‘8080’ sur l’hôte, et il a seulement 1 réplique.

Répliques et mise à l’échelle du service

Maintenant, nous allons créer des répliques pour le service ‘my-web’. Nous allons faire 2 répliques du service ‘my-web’, afin que le service soit accessible sur les nœuds ‘gestionnaire’ et ‘worker01’.

Pour répliquer le service ‘my-web’, exécutez la commande suivante.

docker service scale my-web=2

Et après que cela soit terminé, vérifiez à nouveau en utilisant la commande docker service.

docker service ls

Et maintenant le serveur a 2 répliques.

Répliques et mise à l'échelle du service

Ouvrez votre navigateur web et tapez l’adresse IP du nœud gestionnaire avec le port 8080.

http://manager:8080/

Et vous obtiendrez la page par défaut de Nginx.

Voici le résultat du nœud ‘worker01’.

http://worker01:8080/

Le cluster Swarm a été créé, et le service Nginx a été complètement déployé sur notre cluster Swarm.

Référence

Share: X/Twitter LinkedIn

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

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