Lorsque vous travaillez avec Docker, vous manipulez des images — des fichiers exécutables contenant tout ce qu’il faut pour exécuter une application : code source, bibliothèques et dépendances. Ces images sont stockées dans des dépôts spécialisés appelés registres, qui peuvent être privés ou publics.
Le registre public le plus connu est Docker Hub, où vous pouvez trouver de nombreuses images officielles telles que Nginx, PostgreSQL, Alpine, Ubuntu, Node et MongoDB. Les utilisateurs peuvent créer un compte sur Docker Hub et y stocker leurs propres images ; par défaut, ils disposent d’un registre public et de trois registres privés. Docker Hub est le registre par défaut utilisé par Docker pour télécharger (pull) les images.
Ce guide explique comment changer le registre par défaut de Docker pour en utiliser un autre.
Une méthode simple pour utiliser des registres externes consiste à recourir à ceux proposés par des fournisseurs tiers tels que Google ou Amazon.
Voici une liste de registres publics que vous pouvez utiliser :
|
URL du registre |
Fournisseur |
|
|
|
|
Amazon |
|
|
Red Hat |
|
|
Red Hat |
|
|
Red Hat |
⚠️ Remarque : l’utilisation de registres externes peut présenter des risques de sécurité. Procédez avec prudence.
Suivez les étapes ci-dessous pour remplacer Docker Hub par un autre registre par défaut.
Ouvrez le fichier daemon.json avec un éditeur de texte.
Si Docker est installé hors mode rootless, le fichier se trouve ici :
/etc/docker/daemon.json
S’il n’existe pas, créez-le avec :
nano /etc/docker/daemon.json
Pour Docker en mode rootless, le fichier se trouve dans le répertoire personnel de l’utilisateur :
~/.config/docker/daemon.json
Créez-le si nécessaire :
nano ~/.config/docker/daemon.json
Ajoutez le paramètre suivant pour définir un nouveau registre par défaut (exemple : miroir Google) :
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Enregistrez et fermez le fichier.
Redémarrez ensuite le service Docker pour appliquer les changements :
systemctl reload docker
Désormais, Docker utilisera le nouveau registre pour les téléchargements.
Par exemple, pour récupérer l’image Alpine depuis le miroir de Google :
docker pull mirror.gcr.io/alpine
Vous pouvez également spécifier une version précise :
docker pull mirror.gcr.io/nginx:1.25.2
Ouvrez le fichier daemon.json, situé ici :
C:\Users\<votre_nom_utilisateur>\.docker\daemon.json
Ajoutez le paramètre suivant :
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Enregistrez le fichier, puis redémarrez Docker. Faites un clic droit sur l’icône Docker dans la barre des tâches et sélectionnez Restart.
Vous pouvez aussi effectuer cette configuration via l’interface graphique de Docker Desktop - allez dans Settings → Docker Engine, puis ajoutez :
{
"registry-mirrors": ["https://mirror.gcr.io"]
}
Cliquez ensuite sur Apply & Restart pour appliquer les modifications. Après le redémarrage, Docker utilisera le nouveau registre pour les téléchargements.
Par exemple, téléchargez une image curl :
docker pull mirror.gcr.io/curlimages/curl
Ou une version spécifique :
docker pull mirror.gcr.io/node:21-alpine
Il est également possible d’utiliser Nexus pour gérer vos images Docker. Nexus prend en charge les dépôts proxy, qui permettent de mettre en cache les images téléchargées depuis des registres externes comme Docker Hub. Ainsi, Nexus peut servir de registre proxy de mise en cache, pratique en cas d’indisponibilité d’un registre externe.
Connectez-vous à Nexus avec un compte administrateur ou un utilisateur disposant des droits de création de dépôts.
Accédez à Server Administration and Configuration → Repositories.
Cliquez sur Create repository et sélectionnez le type docker (proxy).
Renseignez les champs suivants :
Name : donnez un nom unique au dépôt.
Online : cochez cette option pour activer le dépôt.
Proxy : si Nexus est derrière un proxy (comme Nginx), il n’est pas nécessaire de définir un port d’authentification.
Sinon, attribuez un port unique pour HTTP ou HTTPS.
Allow anonymous docker pull : cochez cette case pour autoriser le téléchargement d’images sans authentification.
Si elle est décochée, une connexion sera requise.
Remote storage : indiquez l’URL du registre externe, par exemple https://registry-1.docker.io pour Docker Hub.
Une fois le dépôt créé, connectez-vous au registre Nexus si nécessaire :
docker login <adresse_du_registre_nexus>
Pour télécharger une image :
docker pull <adresse_du_registre_nexus>/nom_image:tag
Exemple : télécharger une image Python avec le tag 3.8.19-alpine :
docker pull nexus-repo.com/python:3.8.19-alpine
⚠️ Conseil de sécurité : évitez d’utiliser le tag latest, car il peut contenir des bugs ou des vulnérabilités.
Cet article a présenté plusieurs méthodes pour télécharger et stocker des images Docker. L’utilisation de registres externes peut être utile lorsque Docker Hub est indisponible. Si vous ne faites pas confiance aux registres publics, vous pouvez toujours héberger votre propre registre Docker, privé ou public, via des solutions comme Nexus ou Harbor.