Désactiver un dépôt spécifique
Dans cette étape, vous apprendrez à désactiver un dépôt spécifique à l'aide de la ligne de commande Docker. Désactiver un dépôt signifie que Docker ne téléchargera plus d'images à partir de cette source spécifique lorsque vous utiliserez des commandes telles que docker pull
ou docker run
sans spécifier un nom d'image complet avec le registre. Cela peut être utile pour des raisons de sécurité ou pour contrôler d'où proviennent vos images.
Tout d'abord, simulons l'activation d'un dépôt. Bien que Docker n'ait pas de commande explicite « activer/désactiver » pour les dépôts individuels comme certains gestionnaires de paquets, nous pouvons obtenir un effet similaire en comprenant comment Docker télécharge les images. Par défaut, Docker télécharge depuis Docker Hub. Si vous spécifiez un autre registre, Docker téléchargera depuis celui-ci. Pour « désactiver » un dépôt spécifique d'un registre spécifique, vous n'avez qu'à ne pas spécifier ce registre lors du téléchargement d'images, ou configurer le démon Docker pour l'exclure (ce qui est plus avancé et n'est pas abordé ici).
Pour cette étape, nous allons nous concentrer sur le concept de contrôle des sources d'images. Imaginons que nous ayons un registre personnalisé à l'adresse myregistry.example.com
et que nous voulions nous assurer de ne pas télécharger accidentellement l'image ubuntu
depuis là, mais seulement depuis Docker Hub.
Pour illustrer, essayons d'abord de télécharger une image depuis Docker Hub. C'est le comportement par défaut.
docker pull ubuntu:latest
Vous devriez voir un message indiquant que Docker télécharge l'image ubuntu:latest
depuis Docker Hub.
Maintenant, simulons une tentative de téléchargement depuis un dépôt hypothétiquement désactivé. Comme nous n'avons pas de registre personnalisé configuré, nous utiliserons une commande qui essaierait de télécharger depuis un emplacement spécifique s'il était configuré. L'idée principale est de comprendre que spécifier le nom d'image complet avec le préfixe du registre (registry/repository:tag
) indique à Docker exactement où chercher. Si vous ne voulez pas télécharger depuis myregistry.example.com/ubuntu
, vous n'utilisez tout simplement pas ce nom complet.
Pour renforcer le concept de téléchargement depuis un emplacement spécifique, téléchargeons une autre image, hello-world
, qui est très petite et rapide à télécharger. Nous la téléchargerons toujours depuis Docker Hub, mais la structure de la commande montre comment vous pourriez spécifier un registre si nécessaire.
docker pull docker.io/library/hello-world:latest
Dans cette commande, docker.io
est le registre par défaut (Docker Hub), library
est l'espace de noms par défaut pour les images officielles, et hello-world
est le nom du dépôt. En spécifiant explicitement docker.io/library/hello-world
, nous indiquons à Docker de télécharger depuis Docker Hub. Pour « désactiver » le téléchargement de ubuntu
depuis un hypothétique myregistry.example.com
, vous n'avez qu'à éviter d'utiliser myregistry.example.com/ubuntu
dans vos commandes docker pull
ou docker run
.
Le concept clé ici est que Docker télécharge les images en fonction du nom d'image fourni. Si vous fournissez un nom simple comme ubuntu
, Docker cherche dans les registres configurés (par défaut, seulement Docker Hub). Si vous fournissez un nom complètement qualifié comme myregistry.example.com/ubuntu
, Docker tente de télécharger depuis myregistry.example.com
. Pour « désactiver » un dépôt spécifique d'un registre spécifique, vous vous assurez simplement que vos commandes ne font pas référence à ce dépôt avec le préfixe de ce registre.
Pour vérifier cette étape, nous vérifierons si l'image hello-world
a été téléchargée avec succès, ce qui indique que vous avez exécuté avec succès une commande docker pull
.