Container 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 una cache pubblica
se disponibile oppure esegui il pull dell'immagine da Docker Hub se è presente una copia cache
non è disponibile.
Servizi Google Cloud come Cloud Build e Google Kubernetes Engine automaticamente verifica 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 il giorno mirror.gcr.io
sono:
- Archiviati in un repository gestito da Google.
- Più al riparo dalle interruzioni di Docker Hub.
- Facile da integrare con l'ecosistema Google Cloud.
- Sincronizzazione con Docker Hub.
configura il daemon Docker
Per configurare il daemon Docker in modo da estrarre le immagini dalla cache di Container Registry:
Interfaccia a riga di comando
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, passa al Container Registry nome host:
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"
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
- Apri il menu Preferenze di Docker.
- Fai clic su Daemon.
Fai clic su Avanzate. Nel campo JSON, aggiungi una chiave
registry-mirrors
conhttps://mirror.gcr.io
come valore:{ "registry-mirrors" : [ "https://mirror.gcr.io" ] }
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
Estrazione delle immagini memorizzate nella cache
Container Registry aggiunge le immagini richieste di frequente alla cache 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 Container Registry,
Docker esegue i seguenti passaggi quando esegui il pull di un'immagine Docker Hub pubblica
con un comando docker pull
:
- Il daemon Docker controlla la cache di Container Registry ed esegue il recupero delle immagini, se presenti. Se la configurazione del daemon include altri esegue il mirroring, il daemon controlla ogni elemento per ottenere una copia dell'immagine memorizzata nella cache.
- 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 vi è alcuna garanzia che una determinata immagine rimanga memorizzata nella cache per un periodo di tempo prolungato. Ottieni le immagini memorizzate nella cache solo su mirror.gcr.io
tramite
configurare il daemon Docker. Una richiesta di pull direttamente da
mirror.gcr.io
avrà esito negativo se non esiste una copia dell'immagine memorizzata nella cache.
Passaggi successivi
- Puoi creare i tuoi mirror Docker locali per memorizzare le immagini nella cache. Per maggiori dettagli, consulta la documentazione di Docker.
- Leggi la documentazione di Docker Hub.