Comment utiliser la commande docker logout pour se déconnecter d'un registre

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), nous allons apprendre à utiliser la commande docker logout pour vous déconnecter en toute sécurité des registres Docker. Nous commencerons par comprendre le but de la commande docker logout et pourquoi il est important de supprimer les informations d'identification enregistrées. Nous explorerons ensuite comment vous déconnecter du registre Docker par défaut (Docker Hub) et enfin, comment vous déconnecter d'un registre spécifique non par défaut. Ce laboratoire pratique vous guidera à travers les étapes pratiques de gestion de vos sessions de connexion aux registres Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/login("Log into Docker Registry") docker/SystemManagementGroup -.-> docker/logout("Log out from Docker Registry") subgraph Lab Skills docker/login -.-> lab-555167{{"Comment utiliser la commande docker logout pour se déconnecter d'un registre"}} docker/logout -.-> lab-555167{{"Comment utiliser la commande docker logout pour se déconnecter d'un registre"}} end

Comprendre le but de docker logout

Dans cette étape, nous allons comprendre le but de la commande docker logout. Lorsque vous vous connectez à un registre Docker en utilisant la commande docker login, vos informations d'identification sont enregistrées sur votre système. Cela vous permet de pousser (push) et de tirer (pull) des images depuis le registre sans avoir à réentrer votre nom d'utilisateur et votre mot de passe à chaque fois. Cependant, pour des raisons de sécurité, notamment dans des environnements partagés ou après avoir terminé votre travail, il est important de vous déconnecter du registre. La commande docker logout est utilisée pour supprimer ces informations d'identification enregistrées.

Voyons d'abord si vous êtes actuellement connecté à un registre Docker. Vous pouvez le vérifier en essayant de tirer une image qui nécessite une authentification, ou en vérifiant le fichier de configuration où Docker stocke les informations d'identification. L'emplacement par défaut de la configuration Docker est ~/.docker/config.json.

Vous pouvez afficher le contenu de ce fichier en utilisant la commande cat :

cat ~/.docker/config.json

Si vous êtes connecté, vous verrez une section comme "auths": { ... } contenant des informations sur les registres auxquels vous êtes connecté et les informations d'identification chiffrées. Si vous n'êtes pas connecté, la section auths peut être vide ou absente.

La commande docker logout est simple. Lorsqu'elle est exécutée sans aucun argument, elle vous déconnecte du registre Docker par défaut, qui est généralement Docker Hub.

Simulons une connexion (nous ne nous connecterons pas réellement ici, car l'objectif est de comprendre la déconnexion) puis comprenons comment docker logout fonctionne. Imaginez que vous veniez de lancer docker login. Votre fichier ~/.docker/config.json serait mis à jour avec vos informations de connexion.

Maintenant, pour vous déconnecter du registre par défaut (Docker Hub), vous n'avez qu'à exécuter :

docker logout

Après avoir exécuté cette commande, Docker supprimera les informations d'identification pour le registre par défaut de votre fichier ~/.docker/config.json. Cela signifie que vous devrez vous reconnecter pour pousser ou tirer des images depuis Docker Hub qui nécessitent une authentification.

Dans les étapes suivantes, nous effectuerons réellement des opérations de connexion et de déconnexion pour voir l'effet de la commande docker logout.

Se déconnecter du registre par défaut

Dans cette étape, nous allons pratiquer la déconnexion du registre Docker par défaut, qui est Docker Hub. Bien que nous ne nous soyons pas explicitement connectés dans cet environnement de laboratoire (lab), la commande docker logout est conçue pour supprimer les informations d'identification existantes. L'exécution de docker logout lorsque vous n'êtes pas connecté entraînera un message indiquant que vous n'êtes pas connecté. C'est le comportement attendu et cela confirme que la commande fonctionne correctement pour vérifier et éventuellement supprimer les informations d'identification.

Tout d'abord, essayons de nous déconnecter du registre par défaut. Ouvrez votre terminal dans le répertoire ~/project et exécutez la commande suivante :

docker logout

Vous devriez voir une sortie similaire à celle-ci :

Not logged in to any registry

Ce message confirme qu'il n'y avait pas d'informations d'identification enregistrées pour le registre par défaut (Docker Hub) dans votre fichier ~/.docker/config.json. Si vous aviez été connecté, la sortie indiquerait une déconnexion réussie.

Pour mieux comprendre l'effet de docker logout, examinons à nouveau le fichier ~/.docker/config.json après avoir essayé de vous déconnecter.

cat ~/.docker/config.json

Vous remarquerez que la section auths, si elle existait et contenait des informations d'identification pour le registre par défaut, serait maintenant vide ou l'entrée pour https://index.docker.io/v1/ serait supprimée. Étant donné que nous n'étions pas connectés, le contenu du fichier devrait rester le même qu'avant, probablement avec une section auths vide ou absente.

Cette étape démontre l'utilisation de base de docker logout sans aucun argument, qui cible le registre Docker Hub par défaut. Dans l'étape suivante, nous explorerons comment nous déconnecter d'un registre spécifique non par défaut.

Se déconnecter d'un registre spécifique

Dans cette étape, nous allons apprendre à nous déconnecter d'un registre Docker spécifique autre que le registre Docker Hub par défaut. Cela est utile lorsque vous travaillez avec plusieurs registres, comme un registre privé d'entreprise ou un registre de conteneurs d'un fournisseur de services cloud.

Pour vous déconnecter d'un registre spécifique, vous devez fournir le nom d'hôte du registre en tant qu'argument à la commande docker logout.

Étant donné que nous n'avons pas configuré de registre privé spécifique dans ce laboratoire (lab), nous utiliserons un exemple hypothétique pour démontrer la syntaxe de la commande. Imaginez que vous êtes connecté à un registre situé à l'adresse my-private-registry.example.com. Pour vous déconnecter de ce registre spécifique, vous utiliseriez la commande suivante :

docker logout my-private-registry.example.com

Lorsque vous exécutez cette commande, Docker cherchera les informations d'identification associées à my-private-registry.example.com dans votre fichier ~/.docker/config.json et les supprimera. Si vous n'étiez pas connecté à ce registre spécifique, Docker vous le signalerait.

Simulons cela en essayant de nous déconnecter d'un registre inexistant. Cela vous montrera la structure de la commande et la sortie attendue lorsque le registre n'est pas trouvé dans votre configuration.

docker logout non-existent-registry.example.com

Vous verrez probablement une sortie similaire à celle-ci :

Not logged in to non-existent-registry.example.com

Ce message confirme que Docker a tenté de trouver et de supprimer les informations d'identification pour non-existent-registry.example.com mais n'en a trouvé aucune.

La capacité de se déconnecter de registres spécifiques est importante pour gérer l'accès à différentes sources d'images et maintenir la sécurité en supprimant les informations d'identification enregistrées inutiles.

En résumé, docker logout sans arguments vous déconnecte du registre Docker Hub par défaut, tandis que docker logout <registry-hostname> vous déconnecte d'un registre spécifique.

Résumé

Dans ce laboratoire (lab), nous avons appris le but de la commande docker logout, qui est essentielle pour supprimer les informations d'identification enregistrées des registres Docker pour des raisons de sécurité. Nous avons compris que après avoir effectué une connexion avec docker login, les informations d'identification sont stockées dans le fichier ~/.docker/config.json. Nous avons appris à vérifier ce fichier pour savoir si nous sommes connectés.

Ensuite, nous nous sommes concentrés sur la commande docker logout elle - même. Nous avons appris que l'exécution de docker logout sans arguments vous déconnecte du registre Docker par défaut (Docker Hub) en supprimant ses informations d'identification du fichier de configuration. Cela garantit que les opérations ultérieures nécessitant une authentification auprès du registre par défaut nécessiteront une nouvelle connexion.