Concetti registro contenitore

Scopri i concetti chiave che devi comprendere prima di utilizzare Container Registry.

Questo argomento descrive i concetti chiave che è necessario comprendere quando si utilizza Oracle Cloud Infrastructure Registry (noto anche come Container Registry).

Immagini

Container Registry è conforme alla normativa Open Container Initiative. Di conseguenza, è possibile memorizzare tutti gli artifact conformi alle specifiche di Open Container Initiative, ad esempio immagini Docker, elenchi di manifesti (a volte noti come immagini multi-architettura) e grafici Helm. Le istruzioni riportate nella presente documentazione si basano sul presupposto che si stia memorizzando e recuperando le immagini dei container Docker utilizzando l'interfaccia CLI Docker. Le immagini dei container Docker vengono comunemente definite immagini Docker o semplicemente immagini.

Un'immagine Docker è un modello di sola lettura con istruzioni per la creazione di un contenitore Docker. Un'immagine Docker contiene l'applicazione che si desidera venga eseguita come container da Docker e qualsiasi dipendenza. Per creare un'immagine Docker, è innanzitutto necessario creare un Dockerfile per descrivere l'applicazione. Successivamente, puoi creare l'immagine Docker dal Dockerfile. Dopo aver creato un'immagine Docker, la memorizzi in un registro Docker, ad esempio Container Registry.

In genere, raggrupperai diverse versioni della stessa immagine Docker in un repository denominato nel registro (ad esempio, in un repository denominato 'project01/acme-web-app') e assegnerai a ogni versione di immagine un identificativo diverso (ad esempio, '4.6.3'). Quindi ogni immagine nel registro è identificata in modo univoco dalla combinazione del nome del repository e del relativo identificativo di versione (ad esempio, 'project01/acme-web-app:4.6.3', 'project01/acme-web-app:4.6.4' e così via).

Repository

Un repository è una raccolta denominata in modo significativo di immagini correlate raggruppate per comodità nel Registro contenitore. In genere, è possibile raggruppare versioni diverse della stessa immagine di origine nello stesso repository (ad esempio, in un repository denominato project01/acme-web-app) e assegnare a ogni versione di immagine un identificativo diverso (ad esempio, 4.6.3). Pertanto, ogni immagine nel registro viene identificata in modo univoco dalla combinazione del nome del repository e del relativo identificativo di versione (ad esempio, project01/acme-web-app:4.6.3, project01/acme-web-app:4.6.4 e così via).

I repository possono essere privati o pubblici. Qualsiasi utente con accesso a Internet e conoscenza dell'URL appropriato può estrarre immagini da un repository pubblico in Container Registry.

Esiste un repository all'interno di una determinata tenancy, area e compartimento. Quando si fa riferimento alla tenancy proprietaria di un repository, si specifica lo spazio di nomi della tenancy. Lo spazio di nomi della tenancy è una stringa casuale generata automaticamente di caratteri alfanumerici. Ad esempio, lo spazio di nomi della tenancy acme-dev potrebbe essere ansh81vru1zp. Tenere presente che per alcune tenancy meno recenti, la stringa dello spazio di nomi potrebbe essere uguale al nome della tenancy in tutte le lettere minuscole (ad esempio, acme-dev). Per individuare lo spazio di nomi della tenancy corrente, aprire il menu Profilo Icona menu Profilo e selezionare Tenancy.

È necessario appartenere al gruppo di amministratori della tenancy o disporre dell'autorizzazione REPOSITORY_MANAGE per:

  • creare un nuovo repository pubblico
  • modificare un repository esistente in un repository pubblico
  • modificare un repository pubblico esistente in un repository privato;

Se si rende privato un repository, sarà possibile eseguire qualsiasi operazione sul repository insieme agli utenti appartenenti al gruppo Administrators della tenancy. È possibile utilizzare i criteri di identità per consentire ad altri utenti di eseguire altre operazioni sui repository (sia pubblici che privati) creati.

In genere, prima di eseguire il push di qualsiasi immagine, si crea un repository vuoto in un compartimento e si assegna un nome al repository (ad esempio, project01/acme-web-app). Se si appartiene al gruppo di amministratori della tenancy o si dispone dell'autorizzazione REPOSITORY_MANAGE, è anche possibile specificare se il repository deve essere privato o pubblico (vedere Criteri per il controllo dell'accesso al repository). Dopo aver creato il repository, le immagini di cui è stato eseguito il PUSH al Container Registry che includono il nome del repository vengono inviate al repository.

Ad esempio, per comodità, potrebbe essere necessario raggruppare più versioni di un'immagine nella tenancy acme-dev nell'area Ashburn nel repository denominato project01/acme-web-app. In primo luogo, creare il repository project01/acme-web-app. Includere quindi il nome del repository quando si esegue il PUSH dell'immagine nel formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>. Ad esempio, ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:4.6.3.

Si noti che la creazione di un repository vuoto prima del push di un'immagine sarà quasi certamente il normale flusso di lavoro. Inoltre, se sei autorizzato a gestire i repository solo nei compartimenti e non nel compartimento radice della tenancy, dovrai sempre creare un repository prima di eseguire il PUSH di un'immagine. Tuttavia, se ti trovi nella posizione insolita di voler eseguire il push delle immagini nel compartimento radice, la creazione di un repository vuoto in anticipo non è strettamente necessaria. Per ulteriori informazioni, vedere Creazione di un repository.

Riepilogo terminologia

Quando si lavora con i repository in Container Registry, sarà utile avere una chiara comprensione dei seguenti termini e di come si relazionano tra loro.

percorso repository

Un percorso di repository (a volte indicato come <repo-path> nella presente documentazione) è il percorso completamente qualificato di un repository in Container Registry. Un percorso di repository ha il formato <registry-domain>/<tenancy-namespace>/<repo-name>.

Ad esempio:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app
  • iad.ocir.io/ansh81vru1zp/project01/acme-web-app
  • us-phoenix-1.ocir.io/cbujx0t3wa3r/my-hello-app
dominio registro

Un dominio del registro del contenitore include una chiave o un identificativo di area del registro del contenitore. Un dominio del registro Container Registry ha uno dei seguenti formati:

  • (consigliato) ocir.<region-identifier>.oci.oraclecloud.com
  • <region-key>.ocir.io (solo realm OC1)
  • <region-identifier>.ocir.io (solo realm OC1)

Ad esempio:

  • ocir.us-ashburn-1.oci.oraclecloud.com
  • iad.ocir.io/ansh81vru1zp
  • us-phoenix-1.ocir.io

Per l'elenco degli identificativi di area e delle chiavi di area, vedere Disponibilità per area.

identificativo area

Un identificativo area (a volte indicato come <region-identifier> nella presente documentazione) identifica l'area Container Registry in uso.

Ad esempio:

  • us-ashburn-1
  • us-phoenix-1

Per l'elenco degli identificativi di area, vedere Disponibilità per area.

chiave area

Una chiave area (a volte indicata come <region-key> nella presente documentazione) identifica l'area Container Registry in uso.

Ad esempio:

  • iad
  • phx

Per l'elenco delle chiavi area, vedere Disponibilità per area.

spazio di nomi della tenancy

Uno spazio di nomi della tenancy (a volte indicato come <tenancy-namespace> in questa documentazione) è una stringa di caratteri alfanumerici generata automaticamente, casuale e immutabile. Ad esempio, lo spazio di nomi della tenancy acme-dev potrebbe essere ansh81vru1zp.

Tenere presente che per alcune tenancy meno recenti, la stringa dello spazio di nomi potrebbe essere uguale al nome della tenancy in tutte le lettere minuscole (ad esempio, acme-dev). Per individuare lo spazio di nomi della tenancy corrente, aprire il menu Profilo Icona menu Profilo e selezionare Tenancy. Lo spazio di nomi della tenancy viene visualizzato nel campo Spazio di nomi dello storage degli oggetti.

nome repository

Un nome di repository (a volte indicato come <repo-name> in questa documentazione) è il nome di un repository in Container Registry, da e verso il quale è possibile eseguire il push e il pull delle immagini. I nomi dei repository possono includere uno o più caratteri barra e sono univoci in tutti i compartimenti dell'intera tenancy.

Ad esempio:

  • project01/acme-web-app
  • project01/my-test-app
  • my-hello-app
  • project01/acme-web-app/component1
  • project01/acme-web-app/component2
  • project01/acme-web-app/component1/subcomponent1

Tenere presente che, sebbene il nome di un repository possa includere caratteri barra, la barra non rappresenta una struttura di directory gerarchica. È semplicemente un carattere in una stringa di caratteri. Per comodità, è possibile scegliere di avviare i nomi di diversi repository con la stessa stringa, eventualmente terminando con una barra (ad esempio project01/). Tale stringa è talvolta chiamata "prefisso del nome repository". Tuttavia, un repository denominato project01/acme-web-app non deve avere alcuna relazione con un repository denominato project01/my-test-app. L'utilizzo dello stesso prefisso del nome del repository per alcuni repository semplifica l'organizzazione e il controllo dell'accesso in Container Registry, che può contenere molti altri repository.

identificativo registro

Un identificativo di registro include un dominio di registro di Container Registry e uno spazio di nomi della tenancy, nel formato <registry-domain>/<tenancy-namespace>

Ad esempio:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp
  • iad.ocir.io/ansh81vru1zp/project01
  • us-phoenix-1.ocir.io/cbujx0t3wa3r
percorso immagine

Un percorso immagine è il percorso completamente qualificato di una determinata immagine in un registro. Estende il percorso del repository aggiungendo l'identificativo di versione associato all'immagine. Un percorso immagine ha il formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>

Ad esempio:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
  • iad.ocir.io/ansh81vru1zp/project01/acme-web-app:v2.0.test
  • us-phoenix-1.ocir.io/cbujx0t3wa3r/my-hello-app:latest
identificativo versione

Un identificatore di versione (a volte indicato come <version> in questa documentazione) è una stringa utilizzata per fare riferimento a una particolare versione di immagine in un repository noto. Ad esempio:

  • 4.6.3
  • 4.6.4
  • v2.0.test
nome immagine

Il termine "nome dell'immagine" è talvolta usato come un modo breve per fare riferimento a una particolare immagine in un particolare repository. In questo contesto, un nome di immagine ha la struttura:

<repo-name>:<version>

Ad esempio:

  • project01/acme-web-app:4.6.3
  • project01/acme-web-app:4.6.4
  • my-hello-app:latest