Pull delle immagini Docker Hub memorizzate nella cache

Container Registry memorizza nella cache le immagini Docker Hub pubbliche a cui si accede di frequente su mirror.gcr.io. Puoi configurare il daemon Docker in modo che utilizzi un'immagine pubblica memorizzata nella cache, se disponibile, oppure puoi eseguire il pull dell'immagine da Docker Hub se non è disponibile una copia memorizzata nella cache.

I servizi Google Cloud come Cloud Build e Google Kubernetes Engine controllano automaticamente la presenza di immagini memorizzate nella cache prima di tentare di eseguire il pull di un'immagine da Docker Hub.

Le immagini memorizzate nella cache in mirror.gcr.io sono:

  • Archiviati in un repository gestito da Google.
  • Maggiore isolamento dalle interruzioni di Docker Hub.
  • Integrazione semplice con l'ecosistema Google Cloud.
  • Sincronizzato con Docker Hub.

Configurazione del daemon Docker

Per configurare il daemon Docker per eseguire il pull delle immagini dalla cache di Container Registry:

CLI

  1. Configura il daemon in uno dei seguenti modi:

    • Per configurare automaticamente il daemon Docker all'avvio, imposta il valore seguente in /etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Quando avvii il daemon, passa il nome host di Container Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • Aggiungi la seguente riga al file /etc/default/docker:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. Riavvia il daemon Docker.

    • Su Linux, esegui uno dei seguenti comandi:

      sudo service docker restart
      

      o

      sudo service docker stop && sudo service docker start
      
    • Su macOS o Windows, esegui questo comando:

      docker-machine restart
      

UI Docker

  1. Apri il menu Preferenze di Docker.
  2. Fai clic su Daemon.
  3. Fai clic su Avanzate. Nel campo JSON, aggiungi una chiave registry-mirrors con https://mirror.gcr.io come valore:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. Fai clic su Applica e riavvia.

Per verificare che la cache sia configurata correttamente, esegui:

docker system info

L'output dovrebbe includere Registry Mirrors e dovrebbe essere simile al seguente:

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

Pull delle immagini memorizzate nella cache

Container Registry aggiunge alla cache le immagini richieste di frequente in modo che siano disponibili per richieste future. Inoltre, rimuove periodicamente le immagini che non sono più richieste.

Dopo aver configurato il daemon Docker per l'utilizzo della cache di Container Registry, Docker esegue i seguenti passaggi quando esegui il pull di un'immagine Docker Hub pubblica con un comando docker pull:

  1. Il daemon Docker controlla la cache di Container Registry e recupera le immagini, se esistenti. Se la configurazione del daemon include altri mirror Docker, il daemon controlla ognuno di essi per cercare una copia dell'immagine memorizzata nella cache.
  2. Se l'immagine continua a non essere trovata, il daemon Docker recupera l'immagine dal repository canonico su Docker Hub.

Il pull delle immagini memorizzate nella cache non viene conteggiato ai fini dei limiti di frequenza di Docker Hub. Tuttavia, non è garantito che una determinata immagine rimanga memorizzata nella cache per un periodo di tempo prolungato. Ottieni immagini memorizzate nella cache su mirror.gcr.io solo configurando il daemon Docker. Una richiesta di pull direttamente da mirror.gcr.io avrà esito negativo se non esiste una copia cache dell'immagine.

Passaggi successivi