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 i tag, la copia e l'eliminazione delle immagini in un nuovo repository.
Per informazioni su push e pull di immagini, vedi Push e pull delle immagini.
Prima di iniziare
- Se il repository di destinazione non esiste, per creare un nuovo repository.
- 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 seguenti ruoli IAM sul repository:
-
Visualizza immagini, file nelle immagini e tag:
Lettore Artifact Registry (
roles/artifactregistry.reader
) -
Utilizza Artifact Registry o modifica i tag per le immagini:
Writer Artifact Registry (
roles/artifactregistry.writer
) -
Elimina le immagini o rimuovi i tag:
Amministratore repository Artifact Registry (
roles/artifactregistry.repoAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Immagini scheda
Modalità repository: standard, remota
Puoi elencare le immagini utilizzando la console Google Cloud o gcloud CLI.
L'elenco di repository include Artifact Registry e dai repository di Container Registry. Utilizzo delle immagini in un Container Registry repository, consulta la documentazione di Container Registry per la gestione delle immagini.Console
Per visualizzare le immagini in un repository:
Apri la pagina Repository nella console Google Cloud.
Fai clic sul repository con l'immagine container.
Fai clic su un'immagine per visualizzarne le versioni.
gcloud
Per elencare tutte le immagini nel progetto, nel repository e posizione quando sono configurati i valori predefiniti:
gcloud artifacts docker images list
Per elencare le immagini in un repository in una località specifica, esegui :
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 è il una o più regioni località del repository.
- PROJECT è il tuo account Google Cloud ID progetto. Se l'ID progetto contiene i due punti (":"), vedi Progetti con ambito dominio.
- REPOSITORY è il nome del repository in cui l'immagine viene archiviato.
- IMAGE è il nome dell'immagine nel repository.
--include-tags
mostra tutte le versioni delle immagini, inclusi sintesi e i tag. Se questo flag viene omesso, l'elenco restituito include solo immagini container di primo livello.
Ad esempio, considera un'immagine con le seguenti caratteristiche:
- Località del repository:
us-west1
- Nome repository:
my-repo
- ID progetto:
my-project
- Nome 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 maggiori dettagli sul formato dei nomi delle immagini, vedi Nomi di repository e immagini.
Elenco dei file
Modalità repository: standard, remota
Puoi elencare i file di un repository, i file in tutte le versioni di un container o i file di una specifica versione 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 posizione quando sono configurati i valori predefiniti:
gcloud artifacts files list
Per elencare i file in un progetto, un repository e una posizione specifici, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file di 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
: il valore una o più regioni località del repository.PROJECT
: il tuo account Google Cloud ID progetto. Se l'ID progetto contiene i due punti (":"), vedi Progetti con ambito dominio.REPOSITORY
: il nome del repository in cui è stata creata l'immagine viene archiviato.PACKAGE
: il nome dell'immagine.VERSION
: il digest dell'immagine, una stringa che inizia consha256:
.TAG
: il tag associato all'immagine container.
Esempi
Considera le seguenti informazioni sull'immagine:
- Progetto:
my-project
- Repository:
my-repo
- Località del repository:
us-west1
- Immagine:
my-app
Il comando seguente elenca tutti i file del repository my-repo
nella
località us-west1
all'interno del progetto predefinito:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
Il comando seguente elenca i file nella versione dell'immagine con
sintesi sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
Il comando seguente elenca i file nella versione dell'immagine con
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 immagini esistenti in un repository Artifact Registry oppure taggali prima di eseguirne il push in un repository.
Taggare le immagini in un repository
Modalità repository: standard
Puoi aggiungere un tag a un'immagine in un repository Artifact Registry utilizzando il metodo Console Google Cloud o la riga di comando. In un repository, i tag sono univoci di un'immagine. Quindi, se hai più versioni di un'immagine, ogni tag si applica a una delle versioni. Se tagghi un'immagine con un tag già presente , sposterai il tag dalla versione originale a quella con il nuovo tag.
Console
Per taggare un'immagine in un repository:
Apri la pagina Repository 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 fai clic su Modifica tag.
Digita nuovi tag nel campo e fai clic su SALVA.
gcloud
Per taggare le immagini in un repository, specifica la versione dell'immagine utilizzando il digest o il tag immagine e specificare il tag da aggiungere. Esegui una delle seguenti comandi:
gcloud artifacts docker tags add IMAGE-VERSION TAG
Dove
- IMAGE-VERSION è il nome completo di immagine da taggare, utilizzando il digest immagine o un tag esistente nella versione immagine.
- TAG è il nome completo del tag che che vuoi aggiungere.
Ad esempio, considera un'immagine con le seguenti caratteristiche:
- Località del repository:
us-west1
- Nome repository:
my-repo
- ID progetto:
my-project
- Nome 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 maggiori dettagli sul formato del nome delle immagini, inclusa la gestione di progetti con ambito dominio, consulta i 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 Push e pull.
Annullamento dei tag delle immagini
Modalità repository: standard
Puoi rimuovere un tag da un'immagine in Artifact Registry utilizzando il metodo Console Google Cloud o la riga di comando.
Console
Apri la pagina Repository nella console Google Cloud.
Fai clic sull'immagine per visualizzarne le versioni.
Seleziona la versione dell'immagine da rimuovere dal tag.
Nella riga della versione selezionata, fai clic su Altre azioni (), e poi fai clic su Modifica tag.
Elimina il tag e 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
Dove
- LOCATION è il una o più regioni località del repository.
- PROJECT è il tuo account Google Cloud ID progetto. Se l'ID progetto contiene i due punti (":"), vedi Progetti con ambito dominio.
- REPOSITORY è il nome del repository in cui l'immagine viene archiviato.
- IMAGE è il nome dell'immagine nel repository.
- TAG è il tag della versione da eliminare.
Eliminazione delle immagini
Modalità repository: standard, remota
Puoi eliminare un'intera immagine container o eliminare una versione specifica dell'immagine associate a un tag o digest.
- Dopo aver eliminato un'immagine, non puoi annullare l'azione.
- L'eliminazione delle immagini non elimina immediatamente i livelli di riferimento. Senza riferimenti vengono eliminati ogni giorno.
- Per i repository remoti, la copia dell'immagine memorizzata nella cache viene rimossa. L'immagine rimane disponibile dall'origine upstream. Se il telecomando riceve una nuova richiesta per la stessa immagine, scaricalo e memorizzalo di nuovo nella cache.
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. Rimozione degli elementi inutilizzati
immagini può aiutarti a ridurre i costi di archiviazione. Lo strumento gcr-cleaner
non è uno
prodotto ufficiale di Google.
Per eliminare un'immagine dalla console Google Cloud o da gcloud CLI:
Console
Apri la pagina Repository 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 specifica versione 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 è il una o più regioni località del repository.
- PROJECT è il tuo account Google Cloud ID progetto. Se l'ID progetto contiene i due punti (":"), vedi Progetti con ambito dominio.
- REPOSITORY è il nome del repository in cui l'immagine viene archiviato.
- IMAGE è il nome dell'immagine nel repository.
- TAG è il tag della versione da eliminare.
Se alla stessa versione immagine sono associati più tag,
devi includere
--delete-tags
per eliminare la versione dell'immagine senza rimuovendo prima i tag. - IMAGE-DIGEST è il valore hash sha256 per la versione
da eliminare. Se un tag è associato al digest immagine,
devi includere
--delete-tags
per eliminare la versione dell'immagine senza prima di rimuovere il tag. --delete-tags
rimuove tutti i tag applicati alla versione immagine. Questo flag consente di forzare l'eliminazione di una versione immagine quando:- Hai specificato un tag, ma sono presenti altri tag associati al tag dell'immagine.
- Hai specificato un digest immagine che ha almeno un tag.
Passaggi successivi
- Scaricare singoli file archiviati in un'immagine senza usare i comandi Docker. Questo può essere utile per il controllo rapido dei file manifest.