Docker Swarm est un outil pratique pour l’orchestration de conteneurs qui vous permet de créer et déployer un groupe de nœuds Docker sur plusieurs serveurs. Dans ce guide, nous allons vous montrer comment installer Docker Swarm sur des serveurs Ubuntu 22.04.
Mise en place des systèmes
Pour préparer vos systèmes à l’installation de Docker Swarm, vous devez accomplir quelques tâches. Passons-les en revue une par une.
Ouverture des ports pour Docker Swarm
Premièrement, vous devez ouvrir certains ports utilisés par Docker Swarm sur tous vos serveurs. Cela peut être réalisé en utilisant le pare-feu Uncomplicated Firewall (UFW). Pour ouvrir les ports nécessaires, suivez ces étapes :
1. Ajoutez le profil d'application OpenSSH et ouvrez le port SSH par défaut 22 en exécutant la commande suivante : sudo ufw allow OpenSSH 2. Démarrez et activez UFW en exécutant la commande suivante : sudo ufw enable 3. Autorisez les ports 30000 à 35000 pour les services en exécutant la commande suivante : sudo ufw allow 30000:35000/tcp 4. Ouvrez les ports 2377, 7946, et 4789 pour Docker Swarm en exécutant les commandes suivantes : sudo ufw allow 2377/tcp sudo ufw allow 7946/tcp sudo ufw allow 7946/udp sudo ufw allow 4789/udp 5. Enfin, rechargez UFW et vérifiez le statut en exécutant les commandes suivantes : sudo ufw reload sudo ufw status
Ajout du dépôt Docker
Ensuite, vous devez ajouter le dépôt officiel Docker à vos serveurs. Cela vous permettra d’installer Docker Engine en utilisant les paquets officiels de Docker. Suivez ces étapes pour ajouter le dépôt Docker :
1. Installez les paquets nécessaires en exécutant la commande suivante : sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y 2. Ajoutez la clé GPG de Docker et le dépôt à vos systèmes avec les commandes suivantes : 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 3. Mettez à jour et rafraîchissez votre dépôt Ubuntu en exécutant la commande suivante : sudo apt update 4. Vous devriez maintenant avoir le dépôt Docker disponible sur vos serveurs.
Installation de Docker Engine
Avec les systèmes préparés, il est temps d’installer Docker Engine sur vos serveurs Ubuntu. Voici comment le faire :
1. Installez Docker Engine en exécutant la commande suivante : sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 2. Vérifiez que le service Docker est en cours d'exécution en exécutant la commande suivante : sudo systemctl is-enabled docker sudo systemctl status docker 3. Vous devriez voir que le service Docker est activé et en cours d'exécution sur vos serveurs. 4. (Optionnel) : Si vous prévoyez d'exécuter des conteneurs Docker en utilisant un utilisateur non-root, vous devez ajouter votre utilisateur au groupe docker. Cela permettra à l'utilisateur d'exécuter la commande Docker et de lancer des conteneurs. Exécutez la commande suivante pour ajouter votre utilisateur au groupe docker : sudo usermod -aG docker shapehost 5. Connectez-vous en tant qu'utilisateur non-root et vérifiez votre configuration Docker en exécutant la commande suivante : su - shapehost docker run hello-world 6. Si la configuration est réussie, vous devriez voir la sortie du conteneur "hello-world".
Initialisation de Docker Swarm
Maintenant que Docker Engine est installé sur vos serveurs, il est temps d’initialiser Docker Swarm et de configurer le Swarm Manager et les nœuds de travail. Commençons :
1. Pour initialiser Docker Swarm, exécutez la commande suivante sur le serveur Swarm Master/Manager : docker swarm init --advertise-addr --default-addr-pool Remplacez `` par l'adresse IP du serveur Swarm Master/Manager, et `` par la plage d'adresses IP pour les conteneurs. 2. Si le processus d'initialisation est réussi, vous verrez le token généré pour ajouter des nœuds à Docker Swarm. 3. Pour vérifier le statut du mode Swarm, exécutez la commande suivante : docker info Si le mode Swarm est activé, vous devriez voir les détails de NodeID, Manager, et Node. 4. Pour vérifier la liste des nœuds dans Docker Swarm, exécutez la commande suivante : docker node ls A ce stade, vous devriez voir seulement le nœud Swarm Master/Manager.
Ajout de nœuds de travail à Docker Swarm
Avec Docker Swarm initialisé, il est temps d’ajouter des nœuds de travail au Swarm. Suivez ces étapes :
1. Exécutez la commande suivante sur le serveur Swarm Master/Manager pour afficher le token généré pour l'ajout de nœuds de travail : docker swarm join-token worker Notez le token affiché. 2. Passez au serveur nœud de travail et exécutez la commande suivante pour rejoindre Docker Swarm en tant que nœud de travail : docker swarm join --token :2377 Remplacez `` par le token que vous avez obtenu à l'étape précédente, et `` par l'adresse IP du serveur Swarm Master/Manager. 3. Si le processus est réussi, vous verrez la sortie "Ce nœud a rejoint un swarm en tant que travailleur". 4. Retournez au serveur Swarm Master/Manager et exécutez la commande suivante pour vérifier la liste des nœuds disponibles dans Docker Swarm : docker node ls Vous devriez maintenant voir le nœud Swarm Manager/Worker et le nouveau nœud de travail ajouté.
Exécution de services dans Docker Swarm
Maintenant que votre Docker Swarm est en place et fonctionne avec les nœuds nécessaires, il est temps de déployer et d’exécuter des services dans le Swarm. Dans cet exemple, nous allons déployer un service HTTP simple en utilisant l’image Nginx. Suivez ces étapes :
1. Créez un nouveau service dans Docker Swarm en exécutant la commande suivante sur le serveur Swarm Master/Manager : docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine Cette commande crée un nouveau service nommé "test-nginx" avec 1 réplique, expose le port 30001, et utilise l'image nginx:alpine. 2. Vérifiez les détails du service "test-nginx" en exécutant la commande suivante : docker service inspect test-nginx Vous verrez des informations détaillées sur le service. 3. Vérifiez la liste des services Docker dans le Swarm en exécutant la commande suivante : docker service ls Si tout va bien, vous devriez voir le service "test-nginx" en cours d'exécution sur le nœud Swarm Manager/Worker. 4. Accédez au service "test-nginx" en utilisant l'adresse IP de l'hôte et le port 30001 avec la commande suivante : curl :30001 Remplacez `` par l'adresse IP du nœud Swarm Manager/Worker. 5. Vous devriez voir le code source index.html et les détails des en-têtes HTTP.
Mise à l’échelle des services dans Docker Swarm
L’un des principaux avantages de Docker Swarm est la capacité à mettre facilement à l’échelle les services. Apprenons comment mettre à l’échelle le service “test-nginx” dans votre Docker Swarm :
1. Mettez à l'échelle le service "test-nginx" à 3 répliques en exécutant la commande suivante sur le serveur Swarm Master/Manager : docker service scale test-nginx=3 2. Vérifiez le service "test-nginx" en exécutant la commande suivante : docker service ps test-nginx Vous devriez voir que le service est en cours d'exécution sur tous les nœuds de travail disponibles. 3. Passez à l'un des terminaux de nœud de travail et exécutez la commande suivante pour s'assurer que le service "test-nginx" est en cours d'exécution : curl :30001 Remplacez `` par l'adresse IP du nœud de travail. 4. Si tout est correctement configuré, vous devriez voir le conteneur exécutant le service "test-nginx".
Suppression de services dans Docker Swarm
Pour nettoyer votre environnement et supprimer les services de votre Docker Swarm, suivez ces étapes :
1. Supprimez le service "test-nginx" en exécutant la commande suivante sur le serveur Swarm Master/Manager : docker service rm test-nginx 2. Vérifiez la liste des services disponibles dans Docker Swarm en exécutant la commande suivante : docker service ls Le service "test-nginx" ne devrait plus être répertorié. 3. Enfin, supprimez l'image nginx:alpine et vérifiez la liste des images téléchargées sur chaque serveur en exécutant les commandes suivantes : docker rmi nginx:alpine docker images
Si vous recherchez des solutions d’hébergement cloud fiables et évolutives, pensez à Shape.host’s Linux SSD VPS. Shape.host offre des services d’hébergement cloud de premier plan avec des performances et une sécurité de haut niveau. Amenez votre entreprise au niveau supérieur avec les solutions d’hébergement haute performance de Shape.host.