S'authentifier auprès d'un registre auto-hébergé avec un nom d'utilisateur et un mot de passe
Dans cette étape, vous apprendrez à vous authentifier auprès d'un registre Docker auto-hébergé en utilisant un nom d'utilisateur et un mot de passe. Bien que Docker Hub soit le registre par défaut, vous devrez peut-être interagir avec des registres privés hébergés au sein de votre organisation ou sur un fournisseur de services cloud.
Un registre auto-hébergé est un registre Docker que vous configurez et gérez vous-même, au lieu d'utiliser un service public comme Docker Hub. Cela est souvent fait pour des raisons de sécurité, de conformité ou de performance.
Pour vous authentifier auprès d'un registre auto-hébergé, vous utilisez la même commande docker login
, mais vous devez spécifier l'adresse du registre. Le format est docker login <registry_address>
.
Pour ce laboratoire, nous allons simuler un registre auto-hébergé. Nous utiliserons une adresse fictive myregistry.local
. Dans un scénario réel, il s'agirait du nom de domaine ou de l'adresse IP réelle de votre registre.
Ouvrez votre terminal dans le répertoire ~/project
.
Pour vous connecter à notre registre auto-hébergé simulé, exécutez la commande suivante, en remplaçant your_registry_username
et your_registry_password
par des identifiants hypothétiques que vous utiliseriez pour ce registre :
docker login myregistry.local
Vous serez invité à entrer le nom d'utilisateur et le mot de passe pour le registre myregistry.local
:
Connectez-vous avec votre identifiant Docker pour pousser et tirer des images depuis myregistry.local. Si vous n'avez pas d'identifiant Docker, rendez-vous sur https://hub.docker.com/ pour en créer un.
Nom d'utilisateur : your_registry_username
Mot de passe : your_registry_password
Entrez le nom d'utilisateur et le mot de passe hypothétiques. Étant donné que myregistry.local
n'est pas un registre réel et fonctionnel dans cet environnement, la connexion échouera probablement avec un message d'erreur indiquant que le registre est inaccessible ou que l'authentification a échoué. Cela est prévu pour cette simulation. L'essentiel est de comprendre la syntaxe de la commande et le processus de spécification d'un registre différent.
Error response from daemon: Get "http://myregistry.local/v2/": dial tcp: lookup myregistry.local on 127.0.0.53:53: no such host
Même si la connexion a échoué car le registre n'existe pas, la syntaxe de la commande docker login <registry_address>
est correcte pour tenter de s'authentifier auprès d'un registre auto-hébergé.
Dans un scénario réel avec un registre auto-hébergé fonctionnel, une connexion réussie entraînerait un message "Connexion réussie", et vos identifiants pour ce registre spécifique seraient stockés dans votre fichier de configuration Docker (~/.docker/config.json
).
Examinons le fichier de configuration Docker pour voir comment les informations sur le registre sont stockées.
cat ~/.docker/config.json
Vous verrez une structure JSON. Après une connexion réussie à Docker Hub à l'étape précédente, vous devriez voir une entrée pour https://index.docker.io/v1/
. Si vous vous étiez connecté avec succès à myregistry.local
, vous verriez une entrée supplémentaire pour cette adresse de registre.
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "..."
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/..."
},
"credsStore": "desktop"
}
La section auths
contient les informations d'authentification pour différents registres auxquels vous vous êtes connecté. Chaque clé dans auths
est l'adresse du registre, et la valeur contient les détails d'authentification.
Cette étape a démontré comment spécifier l'adresse d'un registre auto-hébergé lors de l'utilisation de docker login
.