Gestione delle immagini

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

Per informazioni su come eseguire il push di un'immagine locale in Container Registry o il pull di un'immagine archiviata in Container Registry, consulta Eseguire il push e il pull delle immagini.

Prima di iniziare

Assicurati di:

  1. Abilitato Container Registry nel progetto.

  2. Docker installato.

  3. Docker configurato per eseguire l'autenticazione nel registry.

  4. Disporre delle autorizzazioni per accedere al registry.

Elencare le immagini in base alla posizione di archiviazione

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

Console

Per elencare le immagini in una delle tue sedi ospitanti:

  1. Vai alla pagina Container Registry.

    Apri la pagina Container Registry

  2. Utilizza il selettore sopra Nome per scegliere la posizione dell'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 tue posizioni di hosting, utilizza il seguente comando:

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

dove:

  • [HOSTNAME] è elencato in Location nella console. Si tratta di 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 basati sul dominio.

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

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

dove [IMAGE] è il repository in cui sono nidificate altre immagini.

Consulta anche la documentazione di gcloud container images list.

Elenco delle versioni di un'immagine

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

Console

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

  1. Vai alla pagina Container Registry.

    Apri la pagina Container Registry

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

  3. Per visualizzare il digest completo, fai clic sulla versione dell'immagine per visualizzarne i metadati. Il digest si chiama Digest immagine.

gcloud

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

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

dove:

  • [HOSTNAME] è elencato in Location nella console. Si tratta di 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 basati sul 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 di 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 dell'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 per un'immagine deve essere univoco. Ad esempio, se aggiungi il tag release-candidate alla nona versione dell'immagine, aggiungendo lo stesso tag alla decima versione, il tag verrà spostato dalla nona alla decima versione.

Se non tagghi un'immagine, il client Docker aggiunge il tag predefinito latest. Ciò significa che latest non indica la versione più recente di un'immagine. Indica invece una versione dell'immagine che hai taggato specificamente come latest o la versione non taggata 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 Container Registry.

    Apri la pagina Container Registry

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

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

  4. Digita i nuovi tag nel campo e poi 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. Si tratta di 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 basati sul dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è un tag già applicato all'immagine.
  • [IMAGE_DIGEST] è il valore dell'hash SHA256 dei contenuti dell'immagine.
  • [NEW_TAG] è il nuovo tag che stai aggiungendo all'immagine.

Per ulteriori informazioni 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 contrassegnarla con il nome del registry ed eseguirne il push. Per le istruzioni, consulta Eseguire il push di un'immagine in un registry.

Annullamento del tagging delle 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 Container Registry.

    Apri la pagina 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. Si tratta di 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 basati sul dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [TAG] è il tag che vuoi rimuovere.

    Per ulteriori informazioni su questo comando, consulta gcloud container images untag.

Copia delle immagini in un nuovo registry

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

Per copiare un'immagine da un repository in un altro, utilizza il comando gcloud container images add-tag e identifica l'immagine da spostare tramite il relativo 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 relativo 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 posizione in cui è ospitata l'immagine ed è 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 basati sul dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [IMAGE_DIGEST] è il valore dell'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 invariati il nome e il tag dell'immagine, devi utilizzare:

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 esegui la copia e del progetto in cui esegui la copia. Devi avere accesso ai repository in entrambi i progetti. Se uno degli ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

Per ulteriori informazioni 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 un'immagine, non puoi annullare questa azione.

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

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

Console

  1. Vai alla pagina Container Registry.

    Apri la pagina Container Registry

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

  3. Nel registry, seleziona la casella accanto 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 e che ha più tag:

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

dove:

  • [HOSTNAME] è elencato in Location nella console. Si tratta di 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 basati sul dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.
  • [IMAGE_DIGEST] è il valore dell'hash SHA256 dei contenuti dell'immagine.
  • [TAG] è il tag dell'immagine che vuoi rimuovere.

Per ulteriori informazioni su questo comando, consulta gcloud container images delete.

Passaggi successivi