Gestione delle immagini

La gestione delle immagini include l'elenco delle immagini in un repository, l'aggiunta e l'eliminazione di tag, la copia delle immagini in un nuovo repository e l'eliminazione delle immagini.

Per informazioni sul push di un'immagine locale su Container Registry o sul pull di un'immagine archiviata in Container Registry, consulta Push e pull delle immagini.

Prima di iniziare

Assicurati di:

  1. Abilitato Container Registry nel tuo progetto.

  2. Docker installato.

  3. Docker configurato per l'autenticazione nel registro.

  4. Disporre delle autorizzazioni per accedere al Registro di sistema.

Elenco delle immagini in base alla località di archiviazione

Puoi elencare le immagini in località host specifiche utilizzando la console Google Cloud o la riga di comando.

Console

Per elencare le immagini in una delle località host:

  1. Vai alla pagina di Container Registry.

    Apri la pagina di Container Registry

  2. Utilizza il selettore sopra Nome per scegliere la località host. Le opzioni includono Tutte le località e i nomi host attualmente utilizzati dal progetto, che possono includere gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.

gcloud

Per elencare le immagini che si trovano in una delle località host, utilizza il comando seguente:

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]

dove:

  • [HOSTNAME] è elencato in Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene i due punti (:), consulta Progetti con ambito di dominio.

Se hai registri nidificati, elenca le immagini nidificate specificando il livello di repository in cui sono archiviate:

gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]

dove [IMAGE] è il repository sotto il quale sono nidificate più immagini.

Consulta anche la documentazione gcloud container images list.

Elenco delle versioni di un'immagine

Un registro può contenere diverse versioni di un'immagine. Queste versioni hanno lo stesso nome di immagine e sono identificate dal digest e dai tag.

Console

Per visualizzare il digest e i tag di un'immagine:

  1. Vai alla pagina di Container Registry.

    Apri la pagina di Container Registry

  2. Fai clic sul nome dell'immagine per visualizzarne le versioni. Il digest troncato è riportato sotto Nome, mentre i tag sono elencati in Tag.

  3. Per visualizzare la sintesi completa, fai clic sulla versione dell'immagine per visualizzarne i metadati. Il digest è chiamato Sintesi immagine.

gcloud

Per elencare i digest troncati e i tag di un'immagine, esegui questo comando:

gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]

dove:

  • [HOSTNAME] è elencato in Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.

Per elencare il digest completo delle versioni di un'immagine specifica, esegui questo comando:

gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]

Consulta la documentazione gcloud container images list-tags.

Tagging delle immagini

Puoi aggiungere un tag a un'immagine utilizzando la console Google Cloud o la riga di comando.

Un digest è un identificatore univoco generato automaticamente per una versione immagine. Un tag funge da etichetta che puoi applicare a una versione specifica di un'immagine.

Puoi aggiungere più di un tag a un'immagine. All'interno di un repository, ogni tag di un'immagine deve essere univoco. Ad esempio, se aggiungi il tag release-candidate alla nona versione dell'immagine e alla decima versione, il tag verrà spostato dalla nona versione alla decima versione.

Se non tagghi un'immagine, il client Docker aggiunge il tag predefinito latest. Questo significa che latest non indica la versione più recente di un'immagine. Indica invece una versione dell'immagine taggata specificatamente come latest o la versione senza tag più recente di un'immagine. Poiché il significato di latest non è chiaro, ti consigliamo di evitare di fare affidamento sul tag latest.

Console

Per taggare un'immagine ospitata da Container Registry:

  1. Vai alla pagina di Container Registry.

    Apri la pagina di Container Registry

  2. Fai clic sul nome dell'immagine per visualizzarne la versione.

  3. In Tag, fai clic sull'icona di modifica.

  4. Digita nuovi tag nel campo e fai clic su SALVA.

gcloud

Per taggare le immagini ospitate da Container Registry, utilizza il comando gcloud container images add-tag:

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

o

gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]

dove:

  • [HOSTNAME] è elencato in Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è un tag già applicato all'immagine.
  • [IMAGE_DIGEST] è il valore hash sha256 dei contenuti dell'immagine.
  • [NEW_TAG] è il nuovo tag che stai aggiungendo all'immagine.

Per saperne di più su questo comando, consulta gcloud container images add-tag.

Tagging delle immagini locali per l'hosting su Container Registry

Per eseguire il push di un'immagine locale in Container Registry, devi prima taggarla con il nome del registro ed eseguire il push dell'immagine. Per le istruzioni, vedi Push di un'immagine in un registro.

Rimozione dei tag dalle immagini

Puoi rimuovere un tag da un'immagine in Container Registry utilizzando la console Google Cloud o la riga di comando.

Console

  1. Vai alla pagina di Container Registry.

    Apri la pagina di Container Registry

  2. Fai clic sul nome dell'immagine per visualizzarne la versione.

  3. In Tag, fai clic sull'icona di modifica.

  4. Elimina il tag e fai clic su SALVA.

gcloud

Per rimuovere un tag da un'immagine, utilizza il seguente comando:

gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

dove:

  • [HOSTNAME] è elencato in Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è il tag da rimuovere.

    Per saperne di più su questo comando, consulta gcloud container images untag.

Copia di immagini in un nuovo registro

Puoi copiare un'immagine da un repository all'altro utilizzando la riga di comando. Devi avere accesso a entrambi i repository.

Per copiare un'immagine da un repository all'altro, utilizza il comando gcloud container images add-tag e identifica l'immagine da spostare con il tag:

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

o il suo digest:

gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]

dove, sia per l'origine che per la destinazione:

  • [HOSTNAME] è la località in cui è ospitata l'immagine ed è una delle quattro opzioni seguenti: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [IMAGE_DIGEST] è il valore hash sha256 dei contenuti dell'immagine.
  • [TAG] è il tag che identifica l'immagine di origine da spostare o il tag da applicare all'immagine nel repository di destinazione.

Ad esempio, se vuoi copiare l'immagine my-image nel repository di un altro progetto e nell'host europeo, ma vuoi mantenere lo stesso nome e tag dell'immagine, utilizza:

gcloud container images add-tag \
gcr.io/[PROJECT-ID]/my-image:tag1 \
eu.gcr.io/[OTHER-PROJECT-ID]/my-image:tag1

dove [PROJECT-ID] e [OTHER-PROJECT-ID] sono gli ID progetto della console Google Cloud del progetto da cui stai eseguendo la copia e del progetto in cui stai copiando. Devi avere accesso ai repository in entrambi i progetti. Se uno degli ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.

Per saperne di più su questo comando, consulta gcloud container images add-tag.

Eliminazione delle immagini

Puoi eliminare un'immagine utilizzando la console Google Cloud o la riga di comando. Una volta eliminata l'immagine, l'operazione non potrà essere annullata.

Sono disponibili altri strumenti per gestire le immagini inutilizzate. Ad esempio, lo strumento gcr-cleaner trova ed elimina le vecchie immagini in base a diversi criteri. La rimozione delle immagini inutilizzate può aiutarti a ridurre i costi di archiviazione. Lo strumento gcr-cleaner non è un prodotto ufficiale di Google.

Per eliminare un'immagine dalla console Google Cloud o da gcloud CLI:

Console

  1. Vai alla pagina di Container Registry.

    Apri la pagina di Container Registry

  2. Fai clic sul nome dell'immagine per visualizzarne le versioni.

  3. Nel Registro di sistema, seleziona la casella accanto alla versione o alle versioni dell'immagine che vuoi eliminare.

  4. Fai clic su ELIMINA nella parte superiore della pagina.

  5. Nel popup Elimina elementi del repository, fai clic su ELIMINA.

gcloud

Esegui uno dei seguenti comandi:

  • Un'immagine identificata dal relativo digest:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
    
  • Un'immagine identificata dal relativo tag, con più tag:

    gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
    

dove:

  • [HOSTNAME] è elencato in Location nella console. È una delle quattro opzioni: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • [PROJECT-ID] è l'ID progetto della console Google Cloud. Se l'ID progetto contiene due punti (:), consulta Progetti con ambito di dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [IMAGE_DIGEST] è il valore hash sha256 dei contenuti dell'immagine.
  • [TAG] è il tag dell'immagine che vuoi rimuovere.

Consulta il gcloud container images delete per ulteriori informazioni su questo comando.

Passaggi successivi