Extraire des images Docker Hub mises en cache

Artifact Registry met en cache les images Docker Hub publiques fréquemment consulté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 les images du cache Artifact Registry:

CLI

  1. 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 Artifact 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"
      
  2. 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

  1. Ouvrez le menu Preferences (Préférences) de Docker.
  2. Cliquez sur Daemon.
  3. Cliquez sur Advanced (Paramètres avancés). Dans le champ JSON, ajoutez une clé registry-mirrors ayant comme valeur https://mirror.gcr.io :

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. 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

Artifact Registry ajoute au cache les images fréquemment demandées afin qu'elles soient disponibles pour les futures requêtes. 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 Artifact Registry, Docker effectue les étapes suivantes lorsque vous extrayez une image Docker Hub publique à l'aide d'une commande docker pull:

  1. Le daemon Docker vérifie le cache Artifact Registry et récupère les images, le cas échéant. 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.
  2. 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.

Pour vous authentifier auprès de Docker Hub pour les images qui ne sont pas mises en cache sur mirror.gcr.io, utilisez les dépôts distants Artifact Registry. Les dépôts distants permettent l'authentification auprès de Docker Hub. Nous vous recommandons de vous authentifier auprès de Docker Hub même si vous n'utilisez que des images publiques, car cela augmentera votre limite de débit de téléchargement. Pour en savoir plus sur les limites de débit de téléchargement de Docker Hub, consultez la section Limite de débit de Docker Hub.

Étapes suivantes