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.

Scarica un'immagine da un registro privato o pubblico sul tuo computer.
Scaricare immagini da un altro registro

Prima di iniziare, completa le seguenti attività.

  1. Scarica l'immagine; consulta Esegui il pull di un'immagine nella documentazione introduttiva.

    Se si riceve un messaggio unauthorized: authentication required o denied: requested access to the resource is denied, eseguire il comando ibmcloud 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.

Carica un'immagine dal tuo computer su IBM Cloud Container Registry.
Carica immagini sul tuo namespace

Prima di iniziare, completa le seguenti attività.

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:

  1. Accedi alla CLI eseguendo il comando ibmcloud cr login.

    ibmcloud cr login
    

    Devi 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.

  2. Per visualizzare tutti gli spazi dei nomi disponibili nel tuo account, esegui il comando ibmcloud cr namespace-list.

  3. Carica l'immagine nel tuo spazio dei nomi.

    Se ricevi un messaggio del tipo unauthorized: authentication required o denied: requested access to the resource is denied, esegui il comando ibmcloud cr login.

Dopo aver caricato l'immagine su IBM Cloud Container Registry, puoi eseguire una delle seguenti operazioni.

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.

Copia di immagini tra registri.
Copia di immagini tra registri

Prima di iniziare, completa le seguenti attività.

Per copiare un'immagine tra due registri, completa le seguenti istruzioni:

  1. Esegui il pull di un'immagine da un registro.
  2. 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.

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.

  1. Accedi alla CLI eseguendo il comando ibmcloud cr login.

    ibmcloud cr login
    
  2. Immetti il seguente comando per aggiungere un nuovo riferimento, dove SOURCE_IMAGE è il nome della tua immagine di origine e TARGET_IMAGE è il nome della tua immagine di destinazione. Le immagini di origine e di destinazione devono trovarsi nella stessa regione. SOURCE_IMAGE deve essere nel formato repository:tag o repository@digest e TARGET_IMAGE deve essere nel formato repository:tag, ad esempio us.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 formato repository:tag. Per identificare la tua immagine tramite digest, esegui il comando ibmcloud 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 formato repository@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]
    
  3. 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:

  1. Crea un ID servizio, vedi Creazione e gestione degli ID servizio.
  2. 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.
  3. Crea una chiave API, consulta Creazione di una chiave API per un ID servizio.
  4. 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.
  5. 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:

  1. Effettua l'accesso a IBM Cloud eseguendo il comando ibmcloud login.

  2. Per rimuovere una tag, immetti il seguente comando, dove IMAGE è il nome dell'immagine che vuoi rimuovere, nel formato repository: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 IMAGE
    

    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 formato repository:tag.

  3. Verifica che la tag sia stata rimossa immettendo il seguente comando e controlla che l'immagine non sia visualizzata nell'elenco.

    ibmcloud cr image-list
    

    Se 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:

  1. Effettua l'accesso a IBM Cloud eseguendo il comando ibmcloud login.

  2. Per eliminare un'immagine, immetti il seguente comando, dove IMAGE è il nome dell'immagine che vuoi rimuovere, nel formato repository@digest o repository:tag. Se nel nome dell'immagine non è specificata alcuna tag, per impostazione predefinita verrà eliminata l'immagine con tag latest. Puoi eliminare più immagini elencando ogni percorso del registro IBM Cloud privato nel comando con uno spazio tra ogni percorso.

    ibmcloud cr image-rm IMAGE
    

    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 formato repository:tag. Per identificare la tua immagine tramite digest, esegui il comando ibmcloud 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 formato repository@digest. Se il comando elenca immagini si interrompe, consultare la sezione Perché l'elenco delle immagini si interrompe?

  3. 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:

  1. Accedere alla console IBM Cloud https://cloud.ibm.com/login con il proprio IBMid.
  2. Se hai più account IBM Cloud, dal menu account, seleziona l'account e la regione che vuoi utilizzare.
  3. Fare clic su Menu di navigazione, quindi fare clic su Container Registry.
  4. Fai clic su Immagini. Viene visualizzato un elenco delle tue immagini.
  5. Nella riga che contiene l'immagine che desideri eliminare, seleziona la casella di controllo.
  6. 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:

  1. Effettua l'accesso a IBM Cloud eseguendo il comando ibmcloud login.

  2. 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:

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:

  1. Effettua l'accesso a IBM Cloud eseguendo il comando ibmcloud login.

  2. Elenca le immagini nel cestino immettendo il seguente comando:

    ibmcloud cr trash-list
    

    Viene 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.

  3. Prendi nota del digest per l'immagine che vuoi ripristinare.

  4. Eseguire il seguente comando per ripristinare l'immagine nel repository. Dove DNS è il nome del dominio, NAMESPACE è lo spazio dei nomi, REPO è il repository e DIGEST è il digest dell'immagine da ripristinare.

    ibmcloud cr image-restore DNS/NAMESPACE/REPO@DIGEST
    

    Se 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:

  1. Effettua l'accesso a IBM Cloud eseguendo il comando ibmcloud login.

  2. Elenca le immagini nel cestino immettendo il seguente comando:

    ibmcloud cr trash-list
    

    Viene 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.

  3. Per l'immagine che desideri ripristinare, prendi nota del digest fino al segno @ (@), escluso quest'ultimo. Questa parte del digest è DNS/NAMESPACE/REPO, dove DNS è il nome di dominio, NAMESPACE è lo spazio dei nomi e REPO è il repository.

  4. Per l'immagine che desideri ripristinare, prendi nota del tag TAG.

  5. Esegui il seguente comando per ripristinare l'immagine nel tuo repository, dove DNS/NAMESPACE/REPO è il nome dell'immagine che desideri ripristinare e TAG è il tag.

    ibmcloud cr image-restore DNS/NAMESPACE/REPO:TAG
    

    Nel 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:

  1. Accedere alla console IBM Cloud https://cloud.ibm.com/login con il proprio IBMid.

  2. Se hai più account IBM Cloud, dal menu account, seleziona l'account e la regione che vuoi utilizzare.

  3. Fare clic su Menu di navigazione, quindi fare clic su Container Registry.

  4. Fai clic su Repository. Viene visualizzato un elenco dei tuoi repository privati.

  5. 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.

  6. Fai clic su Elimina repository.