Gestire le immagini

Questa pagina spiega come gestire le immagini container in un repository Docker. 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 sul push e sul pull delle immagini, vedi Push e pull delle immagini.

Prima di iniziare

  1. Se il repository di destinazione non esiste, creane uno nuovo.
  2. Verifica di disporre delle autorizzazioni richieste per il repository.
  3. (Facoltativo) Configura le impostazioni predefinite per i comandi gcloud.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire le immagini, chiedi all'amministratore di concederti i seguenti ruoli IAM nel repository:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Immagini della scheda

Modalità repository: standard, remoto

Puoi elencare le immagini utilizzando la Google Cloud console o gcloud CLI.

L'elenco dei repository include sia i repository Artifact Registry sia quelli Container Registry. Per lavorare con le immagini in un repository Container Registry, consulta la documentazione di Container Registry per la gestione delle immagini.

Console

Per visualizzare le immagini in un repository:

  1. Apri la pagina Repository nella console Google Cloud .

    Apri la pagina Repositori

  2. Fai clic sul repository con l'immagine container.

  3. Fai clic su un'immagine per visualizzarne le versioni.

gcloud

Per elencare tutte le immagini nel progetto, nel repository e nella posizione predefiniti quando sono configurati i valori predefiniti:

gcloud artifacts docker images list

Per elencare le immagini in un repository in una posizione specifica, esegui il comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Per elencare tutti i digest e i tag per un'immagine specifica, esegui il comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

Sostituisci i seguenti valori:

  • LOCATION è la posizione regionale o multiregionale del repository.
  • PROJECT è il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY è il nome del repository in cui è archiviata l'immagine.
  • IMAGE è il nome dell'immagine nel repository.
  • --include-tags mostra tutte le versioni delle immagini, inclusi i digest e i tag. Se questo flag viene omesso, l'elenco restituito include solo le immagini dei container di primo livello.

Ad esempio, considera un'immagine con le seguenti caratteristiche:

  • Posizione del repository: us-west1
  • Nome repository: my-repo
  • ID progetto: my-project
  • Nome dell'immagine: my-image

Il nome completo del repository è:

us-west1-docker.pkg.dev/my-project/my-repo

Il nome completo dell'immagine è:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

Per informazioni dettagliate sul formato del nome dell'immagine, consulta Nomi di repository e immagini.

Elenco dei file

Modalità repository: standard, remoto

Puoi elencare i file in un repository, i file in tutte le versioni di un'immagine container specificata o i file in una versione specifica di un'immagine.

Per tutti i comandi seguenti, puoi impostare un numero massimo di file da restituire aggiungendo il flag --limit al comando.

Per elencare tutti i file nel progetto, nel repository e nella posizione predefiniti quando sono configurati i valori predefiniti:

gcloud artifacts files list

Per elencare i file in un progetto, un repository e una posizione specificati, esegui il comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Per elencare i file per tutte le versioni di un'immagine container specifica:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Per elencare i file per una versione specifica dell'immagine container:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Per elencare i file per un tag specifico:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Sostituisci i seguenti valori:

  • LOCATION: la posizione regionale o multiregionale del repository.
  • PROJECT: il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY: il nome del repository in cui è archiviata l'immagine.
  • PACKAGE: il nome dell'immagine.
  • VERSION: il digest dell'immagine, una stringa che inizia con sha256:.
  • TAG: il tag associato all'immagine del container.

Esempi

Considera le seguenti informazioni sull'immagine:

  • Progetto: my-project
  • Repository: my-repo
  • Posizione del repository: us-west1
  • Immagine: my-app

Il comando seguente elenca tutti i file nel repository my-repo nella posizione us-west1 all'interno del progetto predefinito:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Il seguente comando elenca i file nella versione dell'immagine con il digest sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
Il seguente comando elenca i file nella versione dell'immagine con il tag 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

Tagging delle immagini

Puoi taggare le immagini esistenti in un repository Artifact Registry oppure puoi taggarle prima di eseguirne il push in un repository.

Tagging delle immagini in un repository

Modalità repository: standard

Puoi aggiungere un tag a un'immagine in un repository Artifact Registry utilizzando Google Cloud console o la riga di comando. In un repository, i tag sono univoci per una versione di un'immagine. Pertanto, se hai più versioni di un'immagine, ogni tag si applica solo a una delle versioni. Se assegni a un'immagine un tag già in uso, il tag verrà spostato dalla versione originale a quella appena taggata.

Console

Per taggare un'immagine in un repository:

  1. Apri la pagina Repository nella console Google Cloud .

    Apri la pagina Repositori

  2. Fai clic sull'immagine per visualizzarne le versioni.

  3. Seleziona la versione dell'immagine da taggare.

  4. Nella riga della versione selezionata, fai clic su Altre azioni (Altre azioni) e poi su Modifica tag.

  5. Digita i nuovi tag nel campo e poi fai clic su SALVA.

gcloud

Per taggare le immagini in un repository, specifica la versione dell'immagine utilizzando il digest o il tag dell'immagine, quindi specifica il tag da aggiungere. Esegui uno dei seguenti comandi:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Dove

  • IMAGE-VERSION è il nome completo della versione dell'immagine da taggare, utilizzando il digest dell'immagine o un tag esistente nella versione dell'immagine.
  • TAG è il nome completo del tag che vuoi aggiungere.

Ad esempio, considera un'immagine con le seguenti caratteristiche:

  • Posizione del repository: us-west1
  • Nome repository: my-repo
  • ID progetto: my-project
  • Nome dell'immagine: my-image
  • Tag esistente: iteration6-final
  • Tag da aggiungere: release-candidate

Per aggiungere il tag release-candidate alla versione dell'immagine con il tag iteration6-final, esegui questo comando:

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

Per informazioni dettagliate sul formato del nome dell'immagine, inclusi i progetti basati su dominio, consulta Nomi di repository e immagini.

Tagging delle immagini locali

Per eseguire il push di qualsiasi immagine locale in Artifact Registry, devi prima taggarla con il nome del repository ed eseguire il push dell'immagine. Per istruzioni, vedi Spingere e tirare.

Rimozione dei tag dalle immagini

Modalità repository: standard

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

Console

  1. Apri la pagina Repository nella console Google Cloud .

    Apri la pagina Repositori

  2. Fai clic sull'immagine per visualizzarne le versioni.

  3. Seleziona la versione dell'immagine da rimuovere dal tag.

  4. Nella riga della versione selezionata, fai clic su Altre azioni (Altre azioni) e poi su Modifica tag.

  5. Elimina il tag e poi fai clic su SALVA.

gcloud

Per eliminare un tag e rimuoverlo dall'immagine, esegui questo comando:

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Sostituisci quanto segue:

  • LOCATION è la posizione regionale o multiregionale del repository.
  • PROJECT è il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY è il nome del repository in cui è archiviata l'immagine.
  • IMAGE è il nome dell'immagine nel repository.
  • TAG è il tag della versione che vuoi eliminare.

Eliminazione delle immagini

Modalità repository: standard, remoto

Puoi eliminare un'intera immagine container o una versione specifica dell'immagine associata a un tag o un digest.

  • Una volta eliminata un'immagine, non puoi annullare l'azione.
  • L'eliminazione delle immagini non comporta l'eliminazione immediata dei livelli a cui fanno riferimento. I livelli senza riferimenti vengono eliminati ogni giorno.
  • Per i repository remoti, la copia memorizzata nella cache dell'immagine viene rimossa. L'immagine rimane disponibile dalla sorgente upstream. Se il repository remoto riceve una nuova richiesta per la stessa immagine, il repository la scaricherà e la memorizzerà nuovamente nella cache.
Puoi utilizzare i criteri di pulizia per controllare quando e come vengono salvati o eliminati gli artefatti.

Sono disponibili altri strumenti per aiutarti a gestire le immagini inutilizzate. Ad esempio, lo strumento gcr-cleaner trova ed elimina le immagini precedenti in base a diversi criteri. La rimozione delle 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. Apri la pagina Repository nella console Google Cloud .

    Apri la pagina Repositori

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

  3. Seleziona le versioni da eliminare.

  4. Fai clic su ELIMINA.

  5. Nella finestra di dialogo di conferma, fai clic su ELIMINA.

gcloud

Per eliminare un'immagine e tutti i relativi tag, esegui il comando:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Per eliminare una versione specifica dell'immagine, utilizza uno dei seguenti comandi.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

o

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Dove

  • LOCATION è la posizione regionale o multiregionale del repository.
  • PROJECT è il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
  • REPOSITORY è il nome del repository in cui è archiviata l'immagine.
  • IMAGE è il nome dell'immagine nel repository.
  • TAG è il tag della versione che vuoi eliminare. Se più tag sono associati alla stessa versione dell'immagine, devi includere --delete-tags per eliminare la versione dell'immagine senza rimuovere prima i tag.
  • IMAGE-DIGEST è il valore hash SHA256 della versione che vuoi eliminare. Se un tag è associato al digest dell'immagine, devi includere --delete-tags per eliminare la versione dell'immagine senza rimuovere prima il tag.
  • --delete-tags rimuove tutti i tag applicati alla versione dell'immagine. Questo flag consente di forzare l'eliminazione di una versione dell'immagine quando:
    • Hai specificato un tag, ma ci sono altri tag associati alla versione dell'immagine.
    • Hai specificato un digest immagine con almeno un tag.

Passaggi successivi

  • Scarica singoli file memorizzati all'interno di un'immagine senza utilizzare i comandi Docker. Questa opzione può essere utile per ispezionare rapidamente i file manifest.