Eseguire il pull delle immagini Docker Hub memorizzate nella cache

Artifact Registry memorizza nella cache le immagini Docker Hub pubbliche a cui viene eseguito l'accesso con frequenza su mirror.gcr.io. Puoi configurare il daemon Docker in modo che utilizzi un'immagine pubblica memorizzata nella cache, se disponibile, o esegua il pull dell'immagine da Docker Hub se una copia memorizzata nella cache non è disponibile.

Google Cloud servizi come Cloud Build e Google Kubernetes Engine verificano automaticamente la presenza di immagini memorizzate nella cache prima di tentare di estrarre un'immagine da Docker Hub.

Le immagini memorizzate nella cache alle ore mirror.gcr.io sono:

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

Configura il daemon Docker

Per configurare il daemon Docker in modo da estrarre le immagini dalla cache di Artifact Registry:

Interfaccia a riga di comando

  1. Configura il daemon in uno dei seguenti modi:

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

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • Quando avvii il daemon, trasmetti il nome host di Artifact 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 ed 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

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

Dopo aver configurato il daemon Docker per utilizzare la cache di Artifact Registry, Docker esegue i seguenti passaggi quando estrai un'immagine Docker Hub pubblica con un comando docker pull:

  1. Il daemon Docker controlla la cache di Artifact Registry e recupera le immagini, se esistenti. Se la configurazione del daemon include altri mirror Docker, il daemon controlla ciascuno di essi per una copia memorizzata nella cache dell'immagine.
  2. Se l'immagine non viene ancora trovata, il daemon Docker la recupera 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 solo le immagini memorizzate nella cache su mirror.gcr.io configurando il daemon Docker.

Per l'autenticazione a Docker Hub per le immagini non memorizzate nella cache su mirror.gcr.io, utilizza i repository remoti di Artifact Registry. I repository remoti supportano l'autenticazione su Docker Hub. Ti consigliamo di eseguire l'autenticazione su Docker Hub anche se utilizzi solo immagini pubbliche, in quanto aumenterà il limite di velocità di download. Per saperne di più sui limiti di frequenza di download di Docker Hub, consulta Limite di frequenza di Docker Hub.

Considerazioni

Quando utilizzi la cache Docker Hub di Artifact Registry, tieni presente quanto segue:

  • Artifact Registry funge solo da cache per le immagini archiviate su Docker Hub. Google Cloud Non convalida, analizza o ripara le vulnerabilità nelle immagini memorizzate nella cache di Docker Hub. È tua responsabilità assicurarti che le immagini che memorizzi su Docker Hub soddisfino i requisiti di sicurezza e conformità della tua organizzazione. Se hai bisogno di una scansione attiva delle vulnerabilità, valuta la possibilità di utilizzare Artifact Analysis.

  • La cache di Artifact Registry è progettata per migliorare la stabilità e non elimina immediatamente le immagini quando vengono rimosse da Docker Hub. Le immagini eliminate da Docker Hub potrebbero rimanere disponibili nella cache di Artifact Registry per un massimo di diversi giorni prima di essere rimosse dalla cache.I servizi che preconfigurano l'utilizzo della cache, come Cloud Build e Google Kubernetes Engine, potrebbero continuare a utilizzare automaticamente le immagini non eliminate dalla cache di Artifact Registry. Google Cloud

Passaggi successivi