Container Registry met en cache les images Docker Hub publiques les plus demandées sur mirror.gcr.io
. Vous pouvez configurer le daemon Docker pour utiliser une image publique mise en cache si elle est disponible, ou extraire l'image de Docker Hub si une copie mise en cache n'est pas disponible.
Les services Google Cloud tels que Cloud Build et Google Kubernetes Engine recherchent automatiquement des images mises en cache avant d'essayer d'extraire une image de Docker Hub.
Les images mises en cache sur mirror.gcr.io
sont :
- stockées dans un dépôt géré par Google ;
- davantage isolées en cas de pannes de Docker Hub ;
- faciles à intégrer à l'écosystème Google Cloud ;
- synchronisées avec Docker Hub.
Configurer le daemon Docker
Pour configurer votre daemon Docker afin d'extraire des images du cache Container Registry, procédez comme suit :
CLI
Configurez le daemon de l'une des manières suivantes :
Pour configurer automatiquement le daemon Docker au démarrage, définissez la valeur suivante dans
/etc/docker/daemon.json
:{ "registry-mirrors": ["https://mirror.gcr.io"] }
Lorsque vous démarrez le daemon, transmettez le nom d'hôte Container Registry :
dockerd --registry-mirror=https://mirror.gcr.io
Ajoutez la ligne suivante à votre fichier
/etc/default/docker
:DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
Redémarrez le daemon Docker :
Sous Linux, exécutez l'une des commandes suivantes :
sudo service docker restart
ou
sudo service docker stop && sudo service docker start
Sous macOS ou Windows, exécutez la commande suivante :
docker-machine restart
Interface utilisateur Docker
- Ouvrez le menu Preferences (Préférences) de Docker.
- Cliquez sur Daemon.
Cliquez sur Advanced (Paramètres avancés). Dans le champ JSON, ajoutez une clé
registry-mirrors
ayant comme valeurhttps://mirror.gcr.io
:{ "registry-mirrors" : [ "https://mirror.gcr.io" ] }
Cliquez sur Apply & Restart (Appliquer et redémarrer).
Pour vérifier que le cache est correctement configuré, exécutez la commande suivante :
docker system info
Le résultat doit inclure les miroirs Registry Mirrors
et ressembler à ce qui suit :
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
https://mirror.gcr.io
Extraire des images mises en cache
Container Registry ajoute au cache les images qui font l'objet de requêtes fréquentes, de sorte qu'elles soient disponibles pour les requêtes ultérieures. Il supprime également régulièrement les images qui ne sont plus demandées.
Une fois que vous avez configuré le daemon Docker pour utiliser le cache Container Registry, Docker effectue les opérations suivantes lorsque vous extrayez une image Docker Hub publique à l'aide d'une commande docker pull
:
- Le daemon Docker vérifie le cache Container Registry et récupère les images, si elles existent. Si la configuration de votre daemon inclut d'autres miroirs Docker, le daemon vérifie chacun d'entre eux afin d'obtenir une copie mise en cache de l'image.
- S'il ne trouve toujours pas l'image, le daemon Docker la récupère depuis le dépôt canonique sur Docker Hub.
L'extraction d'images mises en cache n'est pas comptabilisée dans les limites de débit de Docker Hub. Cependant, rien ne garantit qu'une image donnée restera en cache pendant une période prolongée. Vous pouvez obtenir uniquement les images mises en cache sur mirror.gcr.io
en configurant le daemon Docker. Une requête pour extraction directe de mirror.gcr.io
échoue si aucune copie mise en cache de l'image n'existe.
Étape suivante
- Vous pouvez créer vos propres miroirs Docker locaux pour mettre en cache des images. Pour en savoir plus, consultez la documentation Docker.
- Lisez la documentation de Docker Hub.