Ripulitura dei tuoi spazi dei nomi in Container Registry
È possibile ripulire il proprio spazio dei nomiUna raccolta di repository che memorizzano le immagini in un registro. Uno spazio dei nomi è associato a un account IBM Cloud , che può includere più spazi dei nomi. scegliendo di conservare solo le immagini più recenti in ciascun repository di quel namespace all'indirizzo IBM Cloud® Container Registry.
Puoi anche scegliere se eliminare o conservare le tue immagini non contrassegnate con tag.
È possibile individuare ed eliminare le immagini obsolete da tutti i repository di uno spazio dei nomi eseguendo un comando una tantum ibmcloud cr retention-run oppure pianificando una politica tramite il comando ibmcloud cr retention-policy-set.
Puoi scegliere il numero di immagini che vuoi conservare in ciascun repository in uno spazio dei nomi; tutte le altre immagini vengono eliminate automaticamente. Entrambe le opzioni conservano le immagini più recenti. L'età dell'immagine è determinata
dal momento in cui è stata creata, non da quando è stata inserita nel registroUn servizio di archiviazione e distribuzione che contiene immagini pubbliche o private utilizzate per creare contenitori..
Il numero di immagini conservate è lo stesso per ciascun repository in tale spazio dei nomi.
È inoltre possibile impostare una soglia di cancellazione per proteggere dalla cancellazione le immagini create di recente. Quando viene impostata una soglia di eliminazione, le immagini più recenti rispetto al numero di giorni specificato vengono
sempre conservate, anche se la loro conservazione comporta il superamento del valore “ --images ” per il repository in questione.
Il ibmcloud cr retention-run e ibmcloud cr retention-policy-set producono un elenco di immagini da eliminare. Devi confermare che desideri eliminare
quelle immagini. Dopo che hai eseguito il comando ibmcloud cr retention-policy-set la prima volta, la politica viene eseguita automaticamente ed elimina le immagini che soddisfano i criteri che hai specificato nella politica. Le
immagini eliminate vengono conservate nel cestino per 30 giorni.
Se vuoi controllare cosa è presente nel cestino, esegui il comando ibmcloud cr trash-list. Puoi ripristinare le immagini dal cestino eseguendo
il comando ibmcloud cr image-restore.
Non è possibile eliminare le immagini dal cestino. Le immagini vengono archiviate nel cestino per 30 giorni. Le immagini presenti nel cestino non vengono addebitate.
Se vuoi controllare le tue politiche, puoi eseguire il comando ibmcloud cr retention-policy-list.
Se desideri aggiornare una politica con nuove impostazioni, consulta la sezione " Aggiornamento di una politica di conservazione ".
Se vuoi annullare una politica, aggiorna la politica di conservazione in modo che conservi tutte le tue immagini.
Puoi anche ripulire il tuo spazio dei nomi eliminando le tue immagini non contrassegnate con tag.
Pianificazione della conservazione
I comandi ibmcloud cr retention-run e ibmcloud cr retention-policy-set operano in base allo spazio dei nomi. Se hai più spazi dei nomi nella tua pipeline, puoi applicare diversi criteri di conservazione per ciascun spazio dei nomi per soddisfare al meglio i tuoi requisiti.
Prendi in considerazione una delivery pipeline con ambienti di sviluppo, di preparazione e di produzione. Nel modo in cui viene fornito il codice, l'integrazione e lo sviluppo continui eseguono il push delle immagini nel registro e poi le distribuiscono direttamente al tuo ambiente di sviluppo. Dopo la verifica, alcune build dallo sviluppo vengono promosse alla fase di preparazione e poi potenzialmente alla produzione. In questo scenario, la modifica alla frequenza di immagini è più veloce nello sviluppo e più lenta nella produzione. Se tutti i tuoi ambienti prelevano le immagini dallo stesso namespace, può risultare difficile scegliere un numero adeguato di immagini da conservare a causa di questa differenza di velocità.
Un buon approccio consiste nel caricare tutte le immagini in uno spazio dei nomi di sviluppo, ad esempio project-development, e poi utilizzare il ibmcloud cr image-tag per assegnare l'immagine a uno spazio dei nomi diverso quando viene promossa a una fase successiva della pipeline. Nell'esempio precedente, è possibile avere tre spazi dei nomi: development project-development, staging project-staging e production project-production. Quando stai promuovendo dallo sviluppo alla preparazione, le immagini vengono contrassegnate mediante tag dallo spazio dei nomi project-development nello spazio dei nomi project-staging e le immagini da project-staging vengono utilizzate per la distribuzione. In modo simile, quando stai promuovendo dalla preparazione alla produzione, le immagini vengono contrassegnate mediante tag dallo spazio dei nomi project-staging nello spazio dei nomi project-production e le immagini di project-production vengono utilizzare nella distribuzione di produzione.
Ottieni i seguenti vantaggi utilizzando questa tecnica:
- Puoi scegliere diverse impostazioni di conservazione per gli spazi dei nomi di sviluppo, preparazione e produzione.
- Rispetto all'utilizzo di un unico namespace per tutte le immagini, in questo modo si riducono al minimo le possibilità di eliminare accidentalmente un'immagine che potrebbe essere in uso negli ambienti di staging o di produzione.
- Puoi utilizzare politiche IAM diverse. Ad esempio, puoi avere un accesso più restrittivo alle immagini di produzione.
- È possibile firmare le immagini di produzione, ma quelle di sviluppo e di staging devono rimanere non firmate.
Alcuni strumenti di compilazione, ad esempio, Cloud Native Buildpacks e le immagini base delle distribuzioni,
producono immagini con la data di compilazione impostata su una specifica costante piuttosto che sul tempo reale di compilazione o senza alcun timestamp. Se vuoi utilizzare le politiche di conservazione sugli spazi dei nomi che contengono
le immagini create utilizzando strumenti simili, tieni presente che le immagini che non hanno una data di creazione e le immagini che sono state create prima di 2013-01-19T00:13:39Z vengono sempre conservate.
Per ulteriori informazioni, consulta i seguenti argomenti per ricevere assistenza:
Cancella i tuoi spazi dei nomi per mantenere un numero impostato di immagini
Utilizza il comando ibmcloud cr retention-run per ripulire uno spazio dei nomi conservando un numero specificato di immagini per ciascun repository all'interno di uno spazio dei nomi in IBM Cloud Container Registry. Tutte le altre
immagini nello spazio dei nomi vengono eliminate.
È possibile scegliere se escludere dal processo di pulizia le immagini prive di tag. È inoltre possibile specificare una soglia di eliminazione in modo che le immagini create di recente non vengano mai eliminate.
Il comando ibmcloud cr retention-run elenca le immagini da cancellare e fornisce l'opzione per annullare prima dell'eliminazione.
Quando a un'immagine, all'interno di un repository, viene fatto riferimento da più tag, tale immagine viene contata una sola volta. Le immagini più recenti vengono conservate. L'età viene determinata dal momento in cui è stata creata l'immagine, non da quando ne è stato eseguito il push al registro.
Il comando di retention viene eseguito su ogni repository del proprio spazio dei nomi. Se avete più di un repository nel vostro spazio dei nomi, il conteggio delle immagini dopo l'esecuzione del comando di conservazione potrebbe essere superiore al numero impostato come massimo per un repository. Ad esempio, se si imposta il comando di conservazione a 500 immagini per repository e si hanno 10 repository nel proprio spazio dei nomi, si potrebbe avere un numero di immagini pari a 5.000.
Se vuoi ripristinare un'immagine eliminata, puoi elencare il contenuto del cestino eseguendo il comando ibmcloud cr trash-list e ripristinare un'immagine
selezionata eseguendo il comando ibmcloud cr image-restore.
Per ridurre il numero di immagini in ciascun repository all'interno del proprio namespace utilizzando l'interfaccia della riga di comando (CLI), seguire questi passaggi:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Scegli il registro in cui vuoi ripulire le tue immagini immettendo il seguente comando e selezionando la regione appropriata:
ibmcloud cr region-set -
Per conservare le immagini più recenti ed eliminare le altre, eseguire uno dei seguenti comandi:
- Se vuoi ripulire sia le immagini contrassegnate con tag che quelle che non lo sono, immetti il seguente comando:
ibmcloud cr retention-run --images IMAGE_COUNT NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini che si desidera conservare per ciascun repository all'interno del proprio namespace `NAMESPACE`. - Se vuoi ripulire solo le immagini contrassegnate con tag e conservare quelle che non lo sono, immetti il seguente comando: ```txt {: pre} ibmcloud cr retention-run --retain-untagged --images IMAGE_COUNT NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini che si desidera conservare per ciascun repository all'interno del proprio namespace `NAMESPACE`. - Se desideri proteggere dalla cancellazione le immagini create di recente, utilizza l'opzione " `--deletion-threshold-days` ". Le immagini più recenti rispetto al numero di giorni specificato vengono sempre conservate, anche se superano il numero di immagini " `--images` ": ```txt {: pre} ibmcloud cr retention-run --images IMAGE_COUNT --deletion-threshold-days DAYS NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini da conservare, `DAYS` è il periodo minimo in giorni prima che un'immagine possa essere eliminata e `NAMESPACE` è il tuo namespace. Se un'immagine che prevedi di visualizzare non viene visualizzata nell'elenco che viene prodotto, vedi [Perché il comando di conservazione non mostra tutte le immagini?](/docs/Registry?topic=Registry-troubleshoot-image-list-retention) per assistenza. {: tip} -
Verifica che le immagini siano state eliminate immettendo il seguente comando e controlla che le immagini non siano visualizzate nell'elenco.
ibmcloud cr image-listSe il comando di elencazione delle immagini va in timeout, vedi Perché va in timeout quando elenco le immagini? per assistenza.
Imposta una politica di conservazione per i tuoi spazi dei nomi
È possibile impostare una politica di conservazione per i propri spazi dei nomi, in modo da conservare solo le immagini che soddisfano i criteri specificati. La politica di conservazione viene eseguita automaticamente per ripulire i tuoi spazi dei nomi.
È possibile scegliere se escludere dal processo di pulizia le immagini prive di tag. È inoltre possibile specificare una soglia di eliminazione in modo che le immagini create di recente non vengano mai eliminate.
È possibile utilizzare il ibmcloud cr retention-policy-set per impostare una politica che conservi un numero specificato di immagini per ogni
repository all'interno di uno spazio dei nomi in IBM Cloud Container Registry. Tutte le altre immagini nello spazio dei nomi vengono eliminate e spostate nel cestino. Quando si imposta una politica, questa viene eseguita immediatamente, quindi
quotidianamente. Puoi impostare solo una politica in ogni spazio dei nomi.
Quando a un'immagine, all'interno di un repository, viene fatto riferimento da più tag, tale immagine viene contata una sola volta. Le immagini più recenti vengono conservate. L'età viene determinata dal momento in cui è stata creata l'immagine, non da quando ne è stato eseguito il push al registro.
I criteri di conservazione sono impostati per ogni repository nel proprio spazio dei nomi. Se avete più di un repository nel vostro spazio dei nomi, il conteggio delle immagini dopo l'esecuzione del comando dei criteri di conservazione potrebbe essere superiore al numero impostato come massimo per un repository. Ad esempio, se si imposta il criterio di conservazione a 500 immagini per repository e si hanno 10 repository nel proprio spazio dei nomi, si potrebbe avere un numero di immagini pari a 5.000.
Se elimini un'immagine per errore, puoi ripristinarla utilizzando i comandi ibmcloud cr trash-list e ibmcloud cr image-restore.
Per impostare una politica e spostare immediatamente le tue immagini eliminate nel cestino, completa i seguenti passi:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Scegli il registro in cui vuoi ripulire le tue immagini immettendo il seguente comando e selezionando la regione appropriata:
ibmcloud cr region-set -
Per impostare una politica che conserva le immagini più recenti ed elimina le altre, immetti uno dei seguenti comandi:
- Se vuoi ripulire sia le immagini contrassegnate con tag che quelle che non lo sono, immetti il seguente comando:
ibmcloud cr retention-policy-set --images IMAGE_COUNT NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini che si desidera conservare per ciascun repository all'interno del proprio namespace `NAMESPACE`. Viene visualizzato un elenco di immagini da eliminare. - Se vuoi ripulire solo le immagini contrassegnate con tag e conservare quelle che non lo sono, immetti il seguente comando: ```txt {: pre} ibmcloud cr retention-policy-set --retain-untagged --images IMAGE_COUNT NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini che si desidera conservare per ciascun repository all'interno del proprio namespace `NAMESPACE`. Viene visualizzato un elenco di immagini da eliminare. - Se desideri proteggere dalla cancellazione le immagini create di recente, utilizza l'opzione " `--deletion-threshold-days` ". Le immagini più recenti rispetto al numero di giorni specificato vengono sempre conservate, anche se superano il numero di immagini " `--images` ": ```txt {: pre} ibmcloud cr retention-policy-set --images IMAGE_COUNT --deletion-threshold-days DAYS NAMESPACE ``` Dove `IMAGE_COUNT` è il numero di immagini da conservare, `DAYS` è il periodo minimo in giorni prima che un'immagine possa essere eliminata e `NAMESPACE` è il tuo namespace. Viene visualizzato un elenco di immagini da eliminare. -
Esamina l'elenco di immagini. Per eseguire la politica ed eliminare le immagini, conferma di voler impostare la politica.
Se non si desidera eliminare tali immagini, scegliere
No. La politica non è impostata e le immagini non vengono eliminate. -
Verifica che le immagini siano state eliminate eseguendo il seguente comando e controlla che non compaiano più nell'elenco.
ibmcloud cr trash-list -
Verifica che la politica sia impostata eseguendo il comando
ibmcloud cr retention-policy-liste controlla che la politica che hai impostato per lo spazio dei nomi conservi il numero richiesto di immagini. Se si imposta la politica in modo da conservare tutte le immagini prive di tag, assicurarsi che laRetain all untaggedcolonna abbia il valore "true". Se si imposta una soglia di eliminazione, verificare che laDeletion threshold (days)colonna mostri il valore corretto.ibmcloud cr retention-policy-list
Aggiornare una politica di conservazione
Una politica di conservazione è un insieme di opzioni applicate per ogni spazio dei nomi. È presente una politica per ogni spazio dei nomi; pertanto, per aggiornare una politica, eseguire nuovamente il ibmcloud cr retention-policy-set comando con le nuove impostazioni. Le opzioni aggiornate sostituiscono immediatamente la politica esistente, che continua a essere eseguita quotidianamente con le nuove impostazioni.
Ad esempio, per modificare il numero di immagini da conservare su 30 e aggiungere una soglia di eliminazione di 14 giorni per lo spazio dei nomi NAMESPACE, eseguire il seguente comando:
ibmcloud cr retention-policy-set --images 30 --deletion-threshold-days 14 NAMESPACE
È possibile verificare la politica aggiornata eseguendo il seguente comando:
ibmcloud cr retention-policy-list
Aggiorna una politica di conservazione per conservare tutte le tue immagini
Tutti gli spazi dei nomi hanno una politica predefinita che mantiene tutte le immagini. Puoi riportare una politica allo stato predefinito.
È possibile utilizzare il ibmcloud cr retention-policy-set per ripristinare le impostazioni predefinite della policy eseguendo il seguente comando,
dove NAMESPACE è il proprio namespace:
ibmcloud cr retention-policy-set --images All NAMESPACE
Ripulisci i tuoi spazi dei nomi eliminando le immagini non contrassegnate con tag
È possibile ripulire il proprio namespace e ridurre i costi eliminando le immagini prive di tag presenti nel namespace e, se lo si desidera, esportare i risultati in formato JSON.
È possibile visualizzare tutte le immagini etichettate e non etichettate eseguendo il comando ibmcloud cr image-digests il comando. Se si desidera visualizzare
solo le immagini non contrassegnate, è possibile eseguire il comando ibmcloud cr image-digests con la formattazione in linguaggio Go, vedere Esempio di comando Go format per ibmcloud cr image-digests.
È quindi possibile verificare se si desidera rimuovere le immagini non contrassegnate prima di eseguire il comando ibmcloud cr image-prune-untagged prima di eseguire il comando.
Se desideri eliminare le immagini senza tag e ottenere i risultati in formato JSON, esegui il seguente ibmcloud cr image-prune-untagged comando,
dove NAMESPACE è il tuo namespace:
ibmcloud cr image-prune-untagged [--force | -f [--output json]] --restrict NAMESPACE