Aggiungere immagini allo spazio dei nomi in Container Registry
Puoi archiviare e condividere in tutta sicurezza le immagini di Docker con altri utenti aggiungendole al tuo 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. su IBM Cloud® Container Registry.
Ogni immagine che vuoi aggiungere al tuo spazio dei nomi deve essere innanzitutto presente nel tuo computer locale. Puoi scaricare (pull) un'immagine da un altro repository al tuo computer locale o creare la tua propria immagine da un DockerfileUn file di testo che contiene le istruzioni per creare un'immagine Docker. utilizzando il comando Docker build. Per aggiungere un'immagine al tuo
spazio dei nomi, devi caricare (push) l'immagine locale nel tuo spazio dei nomi in IBM Cloud Container Registry.
Non inserire informazioni personali nelle immagini del contenitore, nei nomi degli spazi dei nomi, nei campi di descrizione o nei dati di configurazione dell'immagine (ad esempio, nomi o etichette dell'immagine).
Esecuzione del pull di immagini da un altro registro
È possibile scaricare un'immagine da qualsiasi fonte di registroUn servizio di archiviazione e distribuzione che contiene immagini pubbliche o private utilizzate per creare contenitori., sia privata che pubblica, sul proprio computer e poi taggarla per un uso successivo su IBM Cloud Container Registry.
Prima di iniziare, completa le seguenti attività.
-
Installare l'interfaccia a riga di comando(CLI)Container Registry per lavorare con le immagini nel proprio spazio dei nomi.
-
Configura il tuo spazio dei nomi in IBM Cloud Container Registry.
-
Assicurati di poter eseguire i comandi Docker senza privilegi di root. Se il tuo client Docker è configurato per richiedere le autorizzazioni root, devi eseguire i comandi
ibmcloud login,ibmcloud cr login,docker pulledocker pushconsudo.Se modifichi le tue autorizzazioni per eseguire i comandi Docker senza i privilegi root, devi eseguire di nuovo il comando
ibmcloud login.
-
Scarica l'immagine; consulta Esegui il pull di un'immagine nella documentazione introduttiva.
Se si riceve un messaggio
unauthorized: authentication requiredodenied: requested access to the resource is denied, eseguire il comandoibmcloud cr login.
Dopo aver estratto un'immagine e averla etichettata per il namespace, è possibile caricare (push) l'immagine dal computer locale al namespace.
Se si distribuisce un carico di lavoro che estrae un'immagine da Container Registry e i pod falliscono con uno stato ImagePullBackOff, vedere Perché le immagini non riescono a estrarre dal registro con ImagePullBackOff o errori di autorizzazione? per assistenza.
Esecuzione del push di immagini Docker al tuo spazio dei nomi
È possibile inviare (caricare) un'immagine dal computer al proprio spazio dei nomi in IBM Cloud Container Registry per memorizzare l'immagine e condividerla con altri utenti.
Prima di iniziare, completa le seguenti attività.
-
Installa la CLI per lavorare con le immagini nel tuo spazio dei nomi.
-
Configura il tuo spazio dei nomi in IBM Cloud Container Registry.
-
Seleziona un'immagine dal tuo computer locale e aggiungi alle informazioni relative allo spazio dei nomi.
-
Assicurati di poter eseguire i comandi Docker senza privilegi di root. Se il tuo client Docker è configurato per richiedere le autorizzazioni root, devi eseguire i comandi
ibmcloud login,ibmcloud cr login,docker pulledocker pushconsudo.Se modifichi le tue autorizzazioni per eseguire i comandi Docker senza i privilegi root, devi eseguire di nuovo il comando
ibmcloud login.
IBM Cloud Container Registry supporta anche altri client come Docker. Per accedere utilizzando altri client, vedere Accesso interattivo ai namespace.
Per caricare (push) un'immagine, completa le seguenti istruzioni:
-
Accedi alla CLI eseguendo il comando
ibmcloud cr login.ibmcloud cr loginDevi effettuare l'accesso se esegui il pull di un'immagine dal tuo IBM Cloud Container Registry privato.
Se si verifica un problema quando si tenta di accedere, consultare la sezione Perché non riesco ad accedere a Container Registry? per ricevere assistenza.
-
Per visualizzare tutti gli spazi dei nomi disponibili nel tuo account, esegui il comando
ibmcloud cr namespace-list. -
Carica l'immagine nel tuo spazio dei nomi.
Se ricevi un messaggio del tipo
unauthorized: authentication requiredodenied: requested access to the resource is denied, esegui il comandoibmcloud cr login.
Dopo aver caricato l'immagine su IBM Cloud Container Registry, puoi eseguire una delle seguenti operazioni.
- Gestisci la sicurezza con il Controllo vulnerabilità per trovare informazioni su possibili vulnerabilità e problemi di sicurezza.
- Creare un cluster e utilizzare questa immagine per distribuire un contenitore al cluster in IBM Cloud Kubernetes Service.
Copia di immagini tra i registri
È possibile copiare immagini tra registri prelevando un'immagine da un registro in una regione e inserendola in un registro in un'altra regione, in modo da poterla condividere con gli utenti di entrambe le regioni.
Prima di iniziare, completa le seguenti attività.
-
Installa la CLI per lavorare con le immagini nel tuo spazio dei nomi.
-
Configura il tuo spazio dei nomi in IBM Cloud Container Registry.
-
Assicurati di poter eseguire i comandi Docker senza privilegi di root. Se il tuo client Docker è configurato per richiedere le autorizzazioni root, devi eseguire i comandi
ibmcloud login,ibmcloud cr login,docker pulledocker pushconsudo.Se modifichi le tue autorizzazioni per eseguire i comandi Docker senza i privilegi root, devi eseguire di nuovo il comando
ibmcloud login.
Per copiare un'immagine tra due registri, completa le seguenti istruzioni:
- Esegui il pull di un'immagine da un registro.
- Esegui il push dell'immagine a un altro registro. Assicurati di utilizzare il nome di dominio corretto per la nuova regione a cui ti rivolgi.
Dopo aver copiato l'immagine, puoi eseguire una delle seguenti operazioni.
- Gestisci la sicurezza delle immagini con Vulnerability Advisor per individuare informazioni su potenziali problemi di sicurezza e vulnerabilità.
- Creare un cluster e utilizzare questa immagine per distribuire un contenitore al cluster in IBM Cloud Kubernetes Service.
Creazione di immagini che fanno riferimento a un'immagine di origine
Creare un'immagine utilizzando il comando ibmcloud cr image-tag.
Nella regione in cui hai effettuato l'accesso, crea un'immagine su IBM Cloud Container Registry che faccia riferimento a un'immagine esistente nella stessa regione. Questa azione è supportata per le immagini sorgente create utilizzando le versioni supportate di Docker Engine, vedere Supporto per Docker.
Le nuove immagini create utilizzando questo meccanismo non conservano le firme. Se hai bisogno che la nuova immagine sia firmata, non utilizzare questo meccanismo.
Prima di iniziare, completa le seguenti attività.
- Installa la CLI per lavorare con le immagini nel tuo spazio dei nomi.
- Assicurati di avere accesso a uno spazio dei nomi privato in IBM Cloud Container Registry che contiene un'immagine di origine a cui vuoi che un'altra immagine faccia riferimento.
Per creare un'immagine a partire da un'immagine di origine, seguire la procedura riportata di seguito.
-
Accedi alla CLI eseguendo il comando
ibmcloud cr login.ibmcloud cr login -
Immetti il seguente comando per aggiungere un nuovo riferimento, dove
SOURCE_IMAGEè il nome della tua immagine di origine eTARGET_IMAGEè il nome della tua immagine di destinazione. Le immagini di origine e di destinazione devono trovarsi nella stessa regione.SOURCE_IMAGEdeve essere nel formatorepository:tagorepository@digesteTARGET_IMAGEdeve essere nel formatorepository:tag, ad esempious.icr.io/namespace/image:latest.Per trovare i nomi delle tue immagini, esegui
ibmcloud cr image-list. Combinare il contenuto della colonna Repository (repository) e della colonna Tag (tag) separate da due punti (:) per creare il nome dell'immagine nel formatorepository:tag. Per identificare la tua immagine tramite digest, esegui il comandoibmcloud cr image-digests. Combinare il contenuto della colonna Repository (repository) e della colonna Digest (digest) separate da un simbolo at (@) per creare il nome dell'immagine nel formatorepository@digest. Se il comando elenca immagini si interrompe, consultare la sezione Perché l'elenco delle immagini si interrompe?ibmcloud cr image-tag [SOURCE_IMAGE] [TARGET_IMAGE] -
Verifica che la nuova immagine sia stata creata eseguendo il seguente comando e controlla che l'immagine compaia nell'elenco con lo stesso hash dell'immagine di origine.
ibmcloud cr image-list
Invio di immagini tramite una chiave API
Crea un ID servizio che utilizzi una chiave APIUn codice univoco che viene passato a un'API per identificare l'applicazione o l'utente chiamante e per inviare dati di tracciamento. Una chiave API viene utilizzata per tracciare e controllare il modo in cui viene utilizzata l'API, ad esempio per impedire l'uso dannoso o improprio dell'API. per inviare immagini a IBM Cloud Container Registry.
Completa i seguenti passi:
- Crea un ID servizio, vedi Creazione e gestione degli ID servizio.
- Creare un criterio che conceda all'ID del servizio l'autorizzazione ad accedere al Registro di sistema; ad esempio, i ruoli "Amministratore" e "Responsabile"; per ulteriori informazioni, consultare Gestione degli accessi IAM per Container Registry.
- Crea una chiave API, consulta Creazione di una chiave API per un ID servizio.
- Utilizza la chiave API per accedere al registro in modo da poter eseguire il push delle immagini al registro, vedi Automazione dell'accesso a IBM Cloud Container Registry.
- Esegui il push delle tue immagini, vedi Esecuzione del push di immagini Docker al tuo spazio dei nomi.
Puoi ora utilizzare i cluster per eseguire il pull delle immagini, vedi Creazione dei contenitori dalle immagini.
Rimozione dei tag dalle immagini nel tuo repository privato
È possibile rimuovere uno o più tag da un'immagine nel repository privato IBM Cloud e assicurarsi che l'immagine sottostante e gli altri tag rimangano al loro
posto usando il comando ibmcloud cr image-untag.
Se all'interno di un repository sono presenti più tag associati allo stesso digest dell'immagine e desideri rimuovere l'immagine sottostante e tutti i relativi tag, consulta la guida "Eliminazione delle immagini dal tuo repository privato su IBM Cloud ".
Per rimuovere una tag o delle tag utilizzando la CLI, completa la seguente procedura:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Per rimuovere una tag, immetti il seguente comando, dove
IMAGEè il nome dell'immagine che vuoi rimuovere, nel formatorepository:tag. Se nel nome immagine non è specificata alcuna tag, il comando ha esito negativo. Puoi eliminare le tag per più immagini elencando ogni percorso del registro IBM Cloud privato nel comando con uno spazio tra ogni percorso.ibmcloud cr image-untag IMAGEPer trovare i nomi delle tue immagini, esegui
ibmcloud cr image-list. Combinare il contenuto della colonna Repository (repository) e della colonna Tag (tag) separate da due punti (:) per creare il nome dell'immagine nel formatorepository:tag. -
Verifica che la tag sia stata rimossa immettendo il seguente comando e controlla che l'immagine non sia visualizzata nell'elenco.
ibmcloud cr image-listSe il comando elenca immagini si interrompe, consultare la sezione Perché l'elenco delle immagini si interrompe?
Eliminazione delle immagini dal proprio repository privato
È possibile eliminare le immagini indesiderate dal proprio repository privato su IBM Cloud utilizzando la console IBM Cloud o la CLI.
Se vuoi eliminare un repository privato e le relative immagini associate, consulta Eliminazione di un repository privato e delle eventuali immagini associate.
L'eliminazione di un'immagine attualmente utilizzata da una distribuzione esistente potrebbe causare il fallimento dell'operazione di scale-up, della riprogrammazione o di entrambe.
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.
Non è possibile eliminare le immagini dal cestino. Le immagini vengono archiviate nel cestino per 30 giorni. Le immagini presenti nel cestino non vengono addebitate.
Dove sono presenti più tag per lo stesso digest immagine all'interno di un repository, il comando ibmcloud cr image-rm rimuove l'immagine sottostante e tutte
le relative tag. Se la stessa immagine è presente in un altro repository o namespace, la copia dell'immagine non viene rimossa. Se desideri rimuovere un tag da un'immagine assicurandoti che l'immagine sottostante e gli altri tag rimangano
al loro posto, consulta il comando " Rimozione dei tag dalle immagini nel tuo repository privato ".
Eliminazione delle immagini dal proprio repository privato tramite la CLI
È possibile eliminare le immagini indesiderate e tutti i relativi tag dal proprio repository privato su IBM Cloud utilizzando la CLI.
L'eliminazione di un'immagine attualmente utilizzata da una distribuzione esistente potrebbe causare il fallimento dell'operazione di scale-up, della riprogrammazione o di entrambe.
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 eliminare un'immagine utilizzando la CLI, completa la seguente procedura:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Per eliminare un'immagine, immetti il seguente comando, dove
IMAGEè il nome dell'immagine che vuoi rimuovere, nel formatorepository@digestorepository:tag. Se nel nome dell'immagine non è specificata alcuna tag, per impostazione predefinita verrà eliminata l'immagine con taglatest. Puoi eliminare più immagini elencando ogni percorso del registro IBM Cloud privato nel comando con uno spazio tra ogni percorso.ibmcloud cr image-rm IMAGEPer trovare i nomi delle tue immagini, esegui
ibmcloud cr image-list. Combinare il contenuto della colonna Repository (repository) e della colonna Tag (tag) separate da due punti (:) per creare il nome dell'immagine nel formatorepository:tag. Per identificare la tua immagine tramite digest, esegui il comandoibmcloud cr image-digests. Combinare il contenuto della colonna Repository (repository) e della colonna Digest (digest) separate da un simbolo at (@) per creare il nome dell'immagine nel formatorepository@digest. Se il comando elenca immagini si interrompe, consultare la sezione Perché l'elenco delle immagini si interrompe? -
Verifica che l'immagine sia stata eliminata immettendo il seguente comando e controlla che l'immagine non sia visualizzata nell'elenco.
ibmcloud cr image-list
Eliminazione delle immagini dal repository privato nella console IBM Cloud
Puoi eliminare le immagini indesiderate e tutte le relative tag dal tuo repository di immagine privato IBM Cloud utilizzando la console IBM Cloud.
L'eliminazione di un'immagine attualmente utilizzata da una distribuzione esistente potrebbe causare il fallimento dell'operazione di scale-up, della riprogrammazione o di entrambe.
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 eliminare un'immagine utilizzando la console IBM Cloud, completa la seguente procedura:
- Accedere alla console IBM Cloud https://cloud.ibm.com/login con il proprio IBMid.
- Se hai più account IBM Cloud, dal menu account, seleziona l'account e la regione che vuoi utilizzare.
- Fare clic su Menu di navigazione, quindi fare clic su Container Registry.
- Fai clic su Immagini. Viene visualizzato un elenco delle tue immagini.
- Nella riga che contiene l'immagine che desideri eliminare, seleziona la casella di controllo.
- Fai clic su Elimina immagine.
Elenco delle immagini nel cestino
Puoi elencare le immagini eliminate che si trovano nel cestino e vedere quando scadono.
Per scoprire quali immagini si trovano nel cestino, puoi utilizzare il comando ibmcloud cr trash-list. Le immagini vengono archiviate nel cestino per 30
giorni.
Per elencare le immagini nel cestino, completa la seguente procedura:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Elencare le immagini nel cestino utilizzando una delle seguenti opzioni:
- Elenca tutte le immagini presenti nel cestino eseguendo il seguente comando:
ibmcloud cr trash-list- Elenca solo le immagini presenti nel cestino relative allo spazio dei nomi che ti interessa eseguendo il seguente comando, dove
NAMESPACEè il tuo spazio dei nomi:
ibmcloud cr trash-list --restrict NAMESPACE
Ripristino delle immagini
Puoi ripristinare le immagini dal cestino. Le immagini eliminate vengono conservate nel cestino per 30 giorni.
Puoi ripristinare un'immagine dal cestino eseguendo il comando ibmcloud cr image-restore. Per scoprire quali immagini si trovano nel cestino, esegui
il comando ibmcloud cr trash-list.
Puoi ripristinare le immagini eseguendo il comando ibmcloud cr image-restore. Puoi utilizzare le seguenti opzioni:
REPO@DIGESTQuesta opzione ripristina il digest e tutti i relativi tag nel repository che non sono già presenti nel repository live. Per ulteriori informazioni, vedi Ripristino delle immagini in base al digest.REPO:TAGquesta opzione ripristina il tag. Per ulteriori informazioni, consulta la sezione " Ripristino delle immagini in base al tag ".
Ripristino delle immagini in base al digest
Quando si ripristina un'immagine tramite digest, il digest viene copiato dal cestino nel repository attivo e vengono ripristinati tutti i tag relativi al digest presenti nel repository. Il digest continua a essere visualizzato nel cestino perché viene ripristinata una copia.
Per ripristinare un'immagine dal cestino utilizzando il digest, eseguire i seguenti passaggi:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Elenca le immagini nel cestino immettendo il seguente comando:
ibmcloud cr trash-listViene visualizzata una tabella che mostra gli elementi contenuti nel cestino. La tabella mostra il digest, i giorni fino alla scadenza e le tag per quel digest.
-
Prendi nota del digest per l'immagine che vuoi ripristinare.
-
Eseguire il seguente comando per ripristinare l'immagine nel repository. Dove
DNSè il nome del dominio,NAMESPACEè lo spazio dei nomi,REPOè il repository eDIGESTè il digest dell'immagine da ripristinare.ibmcloud cr image-restore DNS/NAMESPACE/REPO@DIGESTSe alcuni tag non vengono ripristinati, vedere Perché non vengono ripristinati tutti i tag quando si ripristina il digest?
Nel tuo repository live, puoi eseguire il pull dell'immagine in base al digest. Se esegui il comando
ibmcloud cr image-digests, l'immagine viene mostrata nell'output.
Ripristino delle immagini in base alla tag
Quando ripristini un'immagine in base alla tag, solo quella specifica tag viene spostata dal cestino nel tuo repository live.
Per ripristinare un'immagine dal cestino utilizzando un tag, eseguire i seguenti passaggi:
-
Effettua l'accesso a IBM Cloud eseguendo il comando
ibmcloud login. -
Elenca le immagini nel cestino immettendo il seguente comando:
ibmcloud cr trash-listViene visualizzata una tabella che mostra gli elementi contenuti nel cestino. La tabella mostra il digest, i giorni fino alla scadenza e le tag per quel digest.
-
Per l'immagine che desideri ripristinare, prendi nota del digest fino al segno @ (
@), escluso quest'ultimo. Questa parte del digest èDNS/NAMESPACE/REPO, doveDNSè il nome di dominio,NAMESPACEè lo spazio dei nomi eREPOè il repository. -
Per l'immagine che desideri ripristinare, prendi nota del tag
TAG. -
Esegui il seguente comando per ripristinare l'immagine nel tuo repository, dove
DNS/NAMESPACE/REPOè il nome dell'immagine che desideri ripristinare eTAGè il tag.ibmcloud cr image-restore DNS/NAMESPACE/REPO:TAGNel tuo repository live, puoi eseguire il pull dell'immagine in base alla tag.
Se durante il ripristino di un'immagine si verifica un errore che indica l'esistenza dell'immagine con tag, vedere Perché si verifica un errore durante il ripristino di un'immagine?
Se si esegue il comando
ibmcloud cr trash-list, il digest e qualsiasi altra tag vengono visualizzati nell'output, ma la tag non viene più visualizzata.
Eliminazione di un repository privato e delle eventuali immagini associate
Puoi eliminare i repository privati che non sono più necessari e tutte le immagini associate utilizzando la console IBM Cloud.
Quando elimini un repository, tutte le immagini in tale repository vengono eliminate. Questa azione non può essere annullata.
Prima di cominciare, devi eseguire il backup di tutte immagini che vuoi conservare.
Per eliminare un repository privato utilizzando la console IBM Cloud, completa la seguente procedura:
-
Accedere alla console IBM Cloud https://cloud.ibm.com/login con il proprio IBMid.
-
Se hai più account IBM Cloud, dal menu account, seleziona l'account e la regione che vuoi utilizzare.
-
Fare clic su Menu di navigazione, quindi fare clic su Container Registry.
-
Fai clic su Repository. Viene visualizzato un elenco dei tuoi repository privati.
-
Nella riga che contiene il repository privato che desideri eliminare, seleziona la casella di controllo.
Assicurarsi che sia stato selezionato il repository corretto, perché questa azione non può essere annullata.
-
Fai clic su Elimina repository.