Extraire des images Docker Hub mises en cache

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

  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 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"
      
  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

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 :

  1. 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.
  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. Une requête pour extraction directe de mirror.gcr.io échoue si aucune copie mise en cache de l'image n'existe.

Étapes suivantes