Comment utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire de 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 à utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire (manager) de swarm Docker après que le démon Docker a été redémarré avec la fonction d'autoverrouillage activée. Nous commencerons par initialiser un swarm avec l'autoverrouillage activé, ce qui génère une clé de déverrouillage unique.

Ensuite, nous simulerons un redémarrage du démon Docker sur le nœud gestionnaire (manager) pour déclencher le mécanisme d'autoverrouillage. Enfin, vous utiliserez la commande docker swarm unlock avec la clé de déverrouillage obtenue précédemment pour déverrouiller avec succès le gestionnaire (manager) de swarm, lui permettant de reprendre ses opérations.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/restart("Restart Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ps -.-> lab-555244{{"Comment utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire de swarm"}} docker/restart -.-> lab-555244{{"Comment utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire de swarm"}} docker/system -.-> lab-555244{{"Comment utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire de swarm"}} end

Initialiser un swarm avec l'autoverrouillage activé

Dans cette étape, nous allons initialiser un swarm Docker avec la fonction d'autoverrouillage activée. L'autoverrouillage permet de protéger le swarm contre l'accès non autorisé en nécessitant une clé pour déverrouiller le swarm après un redémarrage du démon Docker.

Tout d'abord, initialisons le swarm. Nous utiliserons la commande docker swarm init avec le paramètre --autolock.

docker swarm init --autolock

Vous devriez voir une sortie similaire à celle-ci, indiquant que le swarm a été initialisé et qu'une clé de déverrouillage a été générée. Assurez-vous de copier la clé de déverrouillage, car vous en aurez besoin à l'étape suivante.

Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 172.17.0.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

To unlock the swarm after it restarts, run the `docker swarm unlock` command and provide the following key:

    Swarm unlock key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

La sortie fournit la commande pour joindre un nœud worker ou manager au swarm, et surtout, la Swarm unlock key (clé de déverrouillage du swarm). Cette clé est essentielle pour déverrouiller le swarm après le redémarrage du démon Docker.

Redémarrer le démon Docker sur le nœud gestionnaire (manager)

Dans cette étape, nous allons simuler un redémarrage du démon Docker sur le nœud gestionnaire (manager). Cela permettra de montrer l'effet de la fonction d'autoverrouillage que nous avons activée à l'étape précédente.

Pour redémarrer le démon Docker, nous utiliserons la commande systemctl restart docker. Comme cela nécessite des privilèges root, nous utiliserons sudo.

sudo systemctl restart docker

Après l'exécution de la commande, le démon Docker sera arrêté puis redémarré. Cela simule un redémarrage du serveur ou un redémarrage manuel du service Docker.

Maintenant, essayons d'exécuter une simple commande Docker pour voir l'état du swarm. Nous utiliserons docker node ls.

docker node ls

Vous devriez voir un message d'erreur indiquant que le swarm est verrouillé et doit être déverrouillé. Cela confirme que la fonction d'autoverrouillage fonctionne comme prévu. La sortie sera similaire à celle-ci :

Error: swarm is encrypted and needs to be unlocked before it can be used. Please use "docker swarm unlock" to unlock it.

Ce message d'erreur est attendu car le swarm est maintenant verrouillé en raison du redémarrage du démon Docker. Dans l'étape suivante, nous utiliserons la clé de déverrouillage obtenue à l'Étape 1 pour déverrouiller le swarm.

Utiliser docker swarm unlock pour déverrouiller le gestionnaire (manager)

Dans cette étape, nous allons déverrouiller le swarm Docker en utilisant la clé de déverrouillage que nous avons obtenue à l'Étape 1. Cela nous permettra d'interagir à nouveau avec le swarm.

Rappelez-vous la clé de déverrouillage qui a été affichée lorsque vous avez initialisé le swarm à l'Étape 1. Vous devrez fournir cette clé à la commande docker swarm unlock.

Utilisez la commande docker swarm unlock suivie du paramètre --unlock-key et de la clé de déverrouillage que vous avez copiée. Remplacez YOUR_UNLOCK_KEY par la clé réelle.

docker swarm unlock --unlock-key YOUR_UNLOCK_KEY

Après avoir exécuté la commande avec la bonne clé de déverrouillage, le swarm devrait être déverrouillé. Vous devriez voir une sortie indiquant que le swarm a été déverrouillé avec succès.

Swarm unlocked.

Maintenant que le swarm est déverrouillé, vérifions que nous pouvons à nouveau interagir avec lui en listant les nœuds du swarm.

docker node ls

Vous devriez maintenant voir les détails du nœud gestionnaire (manager), indiquant que le swarm est opérationnel. La sortie sera similaire à celle-ci :

ID                            HOSTNAME            STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
xxxxxxxxxxxx   labex-vm            Ready     Active         Leader           20.10.21

Cela confirme que vous avez réussi à déverrouiller le swarm Docker après le redémarrage du démon.

Résumé

Dans ce laboratoire (lab), nous avons appris à utiliser la commande docker swarm unlock pour déverrouiller un gestionnaire de swarm (swarm manager) après un redémarrage du démon Docker lorsque le swarm a été initialisé avec la fonction d'autoverrouillage activée. Nous avons commencé par initialiser un swarm Docker en utilisant docker swarm init --autolock, qui a généré une clé de déverrouillage unique essentielle pour récupérer l'accès au swarm après un redémarrage. Nous avons ensuite simulé un redémarrage du démon Docker sur le nœud gestionnaire (manager) en utilisant sudo systemctl restart docker pour déclencher le mécanisme d'autoverrouillage. Cela a démontré l'importance de la clé de déverrouillage obtenue lors de l'initialisation.