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 su push e pull delle immagini, consulta Push e pull delle immagini.
Prima di iniziare
- Se il repository di destinazione non esiste, creane uno nuovo.
- Verifica di disporre delle autorizzazioni necessarie per il repository.
- (Facoltativo) Configura i valori predefiniti 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:
-
Visualizza immagini, file nelle immagini e tag:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
Taggare le immagini o modificare i tag utilizzando Artifact Registry:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Eliminare le immagini o rimuovere i tag:
Amministratore del repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire 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à del repository: standard, remoto
Puoi elencare le immagini utilizzando la console Google Cloud o gcloud CLI.
L'elenco dei repository include sia i repository Artifact Registry sia i repository Container Registry. Per utilizzare 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:
Apri la pagina Repositori nella console Google Cloud.
Fai clic sul repository con l'immagine del contenitore.
Fai clic su un'immagine per visualizzarne le versioni.
gcloud
Per elencare tutte le immagini nel progetto, nel repository e nella località predefiniti quando i valori predefiniti sono configurati:
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 di 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 contenitori di primo livello.
Ad esempio, prendiamo in considerazione un'immagine con le seguenti caratteristiche:
- Posizione del repository:
us-west1
- Nome del 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.
File della scheda
Modalità del repository: standard, remoto
Puoi elencare i file in un repository, i file in tutte le versioni di un'immagine contenitore 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 località predefiniti quando i valori predefiniti sono configurati:
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 di tutte le versioni di un'immagine contenitore specifica:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file di una versione specifica dell'immagine del contenitore:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Sostituisci i seguenti valori:
LOCATION
: la località 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 è memorizzata l'immagine.PACKAGE
: il nome dell'immagine.VERSION
: il digest dell'immagine, una stringa che inizia consha256:
.TAG
: il tag associato all'immagine del contenitore.
Esempi
Considera le seguenti informazioni sull'immagine:
- Progetto:
my-project
- Repository:
my-repo
- Posizione del repository:
us-west1
- Immagine:
my-app
Il seguente comando 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
sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
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 o taggarle prima di eseguirne il push in un repository.
Tagging delle immagini in un repository
Modalità del repository: standard
Puoi aggiungere un tag a un'immagine in un repository Artifact Registry utilizzando la console Google Cloud 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 metti un tag a un'immagine con un tag già in uso, il tag verrà spostato dalla versione originale alla versione appena taggata.
Console
Per taggare un'immagine in un repository:
Apri la pagina Repositori nella console Google Cloud.
Fai clic sull'immagine per visualizzarne le versioni.
Seleziona la versione dell'immagine da taggare.
Nella riga della versione selezionata, fai clic su Altre azioni (
) e poi su Modifica tag.
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 sulla versione dell'immagine.TAG
è il nome completo del tag che vuoi aggiungere.
Ad esempio, prendiamo in considerazione un'immagine con le seguenti caratteristiche:
- Posizione del repository:
us-west1
- Nome del 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 tagiteration6-final
, esegui il seguente 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 un'immagine locale ad Artifact Registry, devi prima contrassegnarla con il nome del repository ed eseguirne il push. Per istruzioni, vedi Spingere e tirare.
Annullamento del tagging delle immagini
Modalità del repository: standard
Puoi rimuovere un tag da un'immagine in Artifact Registry utilizzando la console Google Cloud o la riga di comando.
Console
Apri la pagina Repositori nella console Google Cloud.
Fai clic sull'immagine per visualizzarne le versioni.
Seleziona la versione dell'immagine da annullare il tagging.
Nella riga della versione selezionata, fai clic su Altre azioni (
) e poi su Modifica tag.
Elimina il tag e fai clic su SALVA.
gcloud
Per eliminare un tag e rimuoverlo dall'immagine, esegui il seguente 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à del repository: standard, remoto
Puoi eliminare un'intera immagine container o una versione specifica dell'immagine associata a un tag o a 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 dall'origine a monte. Se il repository remoto riceve una nuova richiesta per la stessa immagine, la scarica e la memorizza nuovamente nella cache.
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 CLI gcloud:
Console
Apri la pagina Repositori nella console Google Cloud.
Fai clic sul nome dell'immagine per visualizzarne le versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
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 dell'immagine specifica, 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 alla stessa versione dell'immagine sono associati più tag, 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 al digest dell'immagine è associato un tag, 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 ti consente di forzare l'eliminazione di una versione dell'immagine quando:- Hai specificato un tag, ma esistono altri tag associati alla versione dell'immagine.
- Hai specificato un digest immagine con almeno un tag.
Passaggi successivi
- Scaricare singoli file memorizzati all'interno di un'immagine senza utilizzare i comandi Docker. Questa opzione può essere utile per esaminare rapidamente i file manifest.