Gestione delle immagini

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

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.

Elenco delle 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 di Container Registry

  2. Utilizza il selettore sopra Nome per scegliere la località 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] è la tua console Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

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

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 registro può contenere diverse versioni di un'immagine. Queste versioni hanno nome dell'immagine e sono identificati 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 di Container Registry

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

  3. Per ottenere il digest completo, fai clic sulla versione dell'immagine per vederne 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. Deve essere 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 dominio.
  • [IMAGE] è il nome dell'immagine in Container Registry.

Per elencare il digest completo delle versioni di un'immagine specifica, esegui il comando seguente 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 sposterà 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 codificare un'immagine ospitata da Container Registry:

  1. Vai alla pagina 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. È uno di 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 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 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 dei tag delle immagini

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

Console

  1. Vai alla pagina di 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] è la tua console Google Cloud ID progetto. 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 a 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 la sua sintesi:

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 con ambito 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, ovvero 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, vuoi mantenere invariati il nome e il tag dell'immagine, devi usare:

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

Vedi gcloud container images add-tag per ulteriori informazioni su questo comando.

Eliminazione delle immagini

Puoi eliminare un'immagine utilizzando la console Google Cloud o la riga di comando. Dopo aver eliminato un'immagine, non potrai annullare l'operazione.

Sono disponibili altri strumenti per aiutarti a gestire le immagini inutilizzate. Ad esempio: gcr-cleaner lo strumento 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 da gcloud CLI:

Console

  1. Vai alla pagina di Container Registry.

    Apri la pagina Container Registry

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

  3. Nel Registro di sistema, seleziona la casella accanto alle versioni dell'immagine da eliminare.

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

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

gcloud

Esegui uno dei seguenti comandi:

  • Un'immagine identificata dal suo 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. È uno di 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 hash sha256 dei contenuti dell'immagine.
  • [TAG] è il tag dell'immagine che vuoi rimuovere.

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

Passaggi successivi