Comment utiliser la commande docker swarm init pour initialiser un swarm

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à initialiser un Docker Swarm en utilisant la commande docker swarm init. Vous commencerez par initialiser un swarm de base pour comprendre le processus fondamental.

En vous appuyant sur l'initialisation de base, vous explorerez ensuite des scénarios plus avancés. Cela inclut l'initialisation d'un swarm avec une adresse d'annonce spécifique pour contrôler la communication réseau, l'activation du verrouillage automatique (autolock) pour renforcer la sécurité et la configuration d'un port de chemin de données personnalisé. Grâce à ces étapes, vous acquerrez une expérience pratique dans la configuration et la personnalisation d'un environnement Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/ls -.-> lab-555240{{"Comment utiliser la commande docker swarm init pour initialiser un swarm"}} docker/rm -.-> lab-555240{{"Comment utiliser la commande docker swarm init pour initialiser un swarm"}} docker/inspect -.-> lab-555240{{"Comment utiliser la commande docker swarm init pour initialiser un swarm"}} docker/info -.-> lab-555240{{"Comment utiliser la commande docker swarm init pour initialiser un swarm"}} end

Initialiser un swarm de base

Dans cette étape, vous apprendrez à initialiser un Docker Swarm de base. Docker Swarm est une solution de clustering et d'orchestration native pour Docker. Il vous permet de créer et de gérer un cluster de nœuds Docker.

Avant d'initialiser le swarm, vérifions l'état actuel de Docker.

docker info

Vous devriez voir des informations sur votre installation de Docker. Recherchez la section "Swarm". Elle devrait indiquer que le Swarm est inactif.

Pour initialiser un swarm de base, vous utiliserez la commande docker swarm init. Cette commande transforme l'hôte Docker actuel en un gestionnaire de swarm (swarm manager).

docker swarm init

Après avoir exécuté la commande, vous verrez un résultat indiquant que le swarm a été initialisé et fournissant une commande pour rejoindre d'autres nœuds au swarm en tant que travailleurs (workers).

Vérifions que le swarm a été initialisé avec succès.

docker info

Maintenant, la section "Swarm" devrait indiquer que le Swarm est actif et que le nœud actuel est un gestionnaire.

Vous pouvez également utiliser la commande docker node ls pour lister les nœuds du swarm.

docker node ls

Vous devriez voir le nœud actuel répertorié avec le statut "Ready" et le rôle "Manager".

Initialiser un swarm avec une adresse d'annonce spécifique

Dans l'étape précédente, vous avez initialisé un Docker Swarm de base. Dans cette étape, vous apprendrez à initialiser un swarm et à spécifier l'adresse que le gestionnaire de swarm (swarm manager) annoncera aux autres nœuds. Cela est utile dans les environnements avec plusieurs interfaces réseau ou lorsque vous souhaitez contrôler quelle adresse est utilisée pour la communication du swarm.

Tout d'abord, vous devez quitter le swarm existant. Vous pouvez le faire en utilisant la commande docker swarm leave. Étant donné que c'est le seul nœud et qu'il s'agit d'un gestionnaire, vous devez utiliser le flag --force.

docker swarm leave --force

Vous devriez voir un résultat confirmant que le nœud a quitté le swarm.

Maintenant, recherchons l'adresse IP de votre machine actuelle. Vous pouvez utiliser la commande ip addr show et chercher l'adresse IP associée à votre interface réseau (généralement eth0 ou ens*).

ip addr show

Identifiez l'adresse IP que vous souhaitez utiliser comme adresse d'annonce du swarm. Par exemple, si votre adresse IP est 172.17.0.2, vous l'utiliserez.

Maintenant, initialisez le swarm à nouveau, mais cette fois-ci, spécifiez l'adresse d'annonce en utilisant le flag --advertise-addr. Remplacez <YOUR_IP_ADDRESS> par l'adresse IP réelle que vous avez trouvée.

docker swarm init --advertise-addr <YOUR_IP_ADDRESS>

Vous verrez un résultat similaire à l'initialisation de base, mais la commande de jointure inclura désormais l'adresse d'annonce spécifiée.

Pour vérifier que le swarm a été initialisé avec la bonne adresse d'annonce, vous pouvez inspecter le swarm.

docker swarm inspect --pretty

Recherchez le champ AdvertiseAddr dans le résultat. Il devrait correspondre à l'adresse IP que vous avez spécifiée.

Initialiser un swarm avec le verrouillage automatique activé

Dans cette étape, vous apprendrez à initialiser un Docker Swarm avec la fonction de verrouillage automatique (autolock) activée. Le verrouillage automatique permet de protéger le swarm contre l'accès non autorisé en nécessitant une clé de déchiffrement pour déverrouiller le swarm après un redémarrage du démon Docker.

Tout d'abord, quittez le swarm existant comme vous l'avez fait dans l'étape précédente.

docker swarm leave --force

Maintenant, initialisez le swarm avec le flag --autolock. Vous pouvez également inclure à nouveau le flag --advertise-addr si vous souhaitez spécifier l'adresse d'annonce. Remplacez <YOUR_IP_ADDRESS> par l'adresse IP de votre machine.

docker swarm init --autolock --advertise-addr <YOUR_IP_ADDRESS>

Lorsque vous initialisez le swarm avec --autolock, le résultat inclura une "Swarm auto - lock key" (clé de verrouillage automatique du swarm). Il est crucial de sauvegarder cette clé dans un endroit sécurisé. Vous en aurez besoin pour déverrouiller le swarm après un redémarrage du démon Docker.

Pour vérifier que le verrouillage automatique est activé, vous pouvez inspecter le swarm.

docker swarm inspect --pretty

Recherchez le champ AutoLockManagers dans le résultat. Il devrait être défini sur true.

Notez que comme il s'agit d'un swarm à un seul nœud dans un environnement de laboratoire, vous ne ressentirez pas pleinement l'effet du verrouillage automatique nécessitant une clé après un redémarrage du démon. Cependant, cette étape montre comment activer la fonction.

Initialiser un swarm avec un port de chemin de données personnalisé

Dans cette étape, vous apprendrez à initialiser un Docker Swarm et à spécifier un port personnalisé pour le réseau du chemin de données. Le réseau du chemin de données est utilisé pour la communication entre les nœuds du swarm pour des tâches telles que la découverte de services et l'équilibrage de charge. Par défaut, ce réseau utilise le port 4789. Vous devrez peut - être changer ce port s'il entre en conflit avec d'autres services sur votre réseau.

Tout d'abord, quittez le swarm existant.

docker swarm leave --force

Maintenant, initialisez le swarm et spécifiez un port de chemin de données personnalisé en utilisant le flag --data - path - port. Utilisons le port 5789 comme exemple. Vous pouvez également inclure le flag --advertise - addr et le flag --autolock si vous le souhaitez. Remplacez <YOUR_IP_ADDRESS> par l'adresse IP de votre machine.

docker swarm init --data - path - port 5789 --advertise - addr < YOUR_IP_ADDRESS > --autolock

Vous verrez le résultat de l'initialisation, y compris la clé de verrouillage automatique si vous l'avez activée.

Pour vérifier que le port de chemin de données personnalisé est configuré, vous pouvez inspecter le swarm.

docker swarm inspect --pretty

Recherchez le champ DataPathPort dans le résultat. Il devrait afficher le port personnalisé que vous avez spécifié, qui est 5789 dans cet exemple.

Ceci conclut les étapes d'initialisation d'un Docker Swarm avec diverses options. Vous avez appris à initialiser un swarm de base, à spécifier une adresse d'annonce, à activer le verrouillage automatique et à définir un port de chemin de données personnalisé.

Résumé

Dans ce laboratoire, vous avez appris le processus fondamental d'initialisation d'un Docker Swarm. Vous avez commencé par initialiser un swarm de base en utilisant la commande docker swarm init, en observant les changements dans docker info et en vérifiant le rôle de manager avec docker node ls.

Ensuite, vous avez exploré des options d'initialisation plus avancées. Vous avez appris à quitter un swarm existant en utilisant docker swarm leave --force, puis à réinitialiser le swarm tout en spécifiant une adresse d'annonce particulière en utilisant le flag --advertise-addr. Cela a démontré comment contrôler l'interface réseau utilisée pour la communication du swarm.