Concepts relatifs à Container Registry
Découvrez les concepts clés que vous devez comprendre avant d'utiliser Container Registry.
Cette rubrique décrit les concepts clés que vous devez comprendre lors de l'utilisation d'Oracle Cloud Infrastructure Registry (également appelé Container Registry).
Images
Container Registry est un registre conforme à Open Container Initiative. Par conséquent, vous pouvez stocker tous les artefacts conformes aux spécifications d'Open Container Initiative, tels que des images Docker, des listes de manifestes (parfois appelées images à architecture multiple) et des graphiques Helm. Les instructions de cette documentation supposent que vous stockez et extrayez des images de conteneur Docker à l'aide de la CLI Docker. Les images de conteneur Docker sont généralement appelées images Docker ou simplement images.
Une image Docker est un modèle en lecture seule contenant des instructions pour la création d'un conteneur Docker. Elle contient l'application que Docker doit exécuter en tant que conteneur, ainsi que les dépendances éventuelles. Afin de créer une image Docker, vous devez d'abord créer un fichier Docker pour décrire cette application. Vous créez ensuite l'image Docker à partir du fichier Docker. Après avoir créé une image Docker, vous la stockez dans un registre Docker tel que Container Registry.
En règle générale, vous allez regrouper différentes versions de la même image Docker dans un référentiel nommé dans le registre (par exemple, dans un référentiel nommé 'project01/acme-web-app') et attribuer à chaque version d'image un identificateur différent (par exemple, '4.6.3'). Ainsi, chaque image du registre est identifiée de manière unique par la combinaison de son nom de référentiel et de son identifiant de version (par exemple, 'project01/acme-web-app :4.6.3', 'project01/acme-web-app :4.6.4', etc.).
Référentiels
Un référentiel est un ensemble de noms significatifs d'images associées qui sont regroupées pour plus de commodité dans Container Registry. En général, vous regrouperez différentes versions de la même image source dans le même référentiel (par exemple, dans un référentiel nommé project01/acme-web-app
) et attribuez à chaque version d'image un identificateur différent (par exemple, 4.6.3
). Ainsi, chaque image du registre est identifiée de manière unique par la combinaison de son nom de référentiel et de son identificateur de version (par exemple, project01/acme-web-app:4.6.3
, project01/acme-web-app:4.6.4
, etc.).
Les référentiels peuvent être privés ou publics. Tout utilisateur disposant d'un accès Internet et connaissant l'URL appropriée peut extraire des images à partir d'un référentiel public dans Container Registry.
Un référentiel existe dans une location, une région et un compartiment spécifiques. Lorsque vous faites référence à la location qui détient un référentiel, vous devez indiquer son espace de noms. L'espace de noms de la location est une chaîne aléatoire de caractères alphanumériques générée automatiquement. Par exemple, l'espace de noms de la location acme-dev
peut être ansh81vru1zp
. Pour certaines anciennes locations, la chaîne d'espace de noms peut être identique au nom de la location en minuscules (par exemple, acme-dev
). Pour trouver l'espace de noms de la location en cours, ouvrez le menu Profil et sélectionnez Location.
Vous devez appartenir au groupe d'administrateurs de la location ou disposer du droit d'accès REPOSITORY_MANAGE pour effectuer les opérations suivantes :
- Créer un référentiel public
- Transformer un référentiel existant en référentiel public
- Transformer un référentiel public existant en référentiel privé
Si vous rendez privé un référentiel, vous (et les utilisateurs appartenant au groupe d'administrateurs de la location) pourrez effectuer n'importe quelle opération sur le référentiel. Vous pouvez utiliser des stratégies d'identité pour autoriser d'autres utilisateurs à effectuer d'autres opérations sur les référentiels (publics et privés) que vous créez.
En général, avant de propager des images, vous créez un référentiel vide dans un compartiment et lui attribuez un nom (par exemple, project01/acme-web-app
). Si vous appartenez au groupe d'administrateurs de la location ou si le droit d'accès REPOSITORY_MANAGE vous a été octroyé, vous pouvez également indiquer si le référentiel doit être privé ou public (reportez-vous à Stratégies de contrôle d'accès au référentiel). Une fois le référentiel créé, les images que vous propagez ensuite vers Container Registry et qui incluent son nom sont propagées vers ce référentiel.
Par exemple, pour plus de commodité, vous pouvez regrouper plusieurs versions d'une image dans la location acme-dev de la région Ashburn dans le référentiel appelé project01/acme-web-app
. Commencez par créer le référentiel project01/acme-web-app
. Ensuite, vous incluez le nom du référentiel lorsque vous propagez l'image, au format <registry-domain>/<tenancy-namespace>/<repo-name>:<version>
. Par exemple, ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:4.6.3
.
Notez que la création d'un référentiel vide avant de propager une image sera presque certainement votre flux de travail normal. De plus, si vous êtes uniquement autorisé à gérer des référentiels dans des compartiments et non dans le compartiment racine de la location, vous devrez toujours créer un référentiel avant de propager une image. Toutefois, si vous avez l'intention inhabituelle de propager des images vers le compartiment racine, il n'est pas strictement nécessaire de créer un référentiel vide à l'avance. Pour plus d'informations, reportez-vous à Création d'un référentiel.
Résumé de terminologie
Lorsque vous utilisez des référentiels dans Container Registry, il vous sera utile de bien comprendre les termes suivants et leurs relations.
- chemin du référentiel
-
Un chemin de référentiel (parfois appelé
<repo-path>
dans cette documentation) est le chemin qualifié complet d'un référentiel dans Container Registry. Un chemin de référentiel a le format<registry-domain>/<tenancy-namespace>/<repo-name>
.Par exemple :
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
- domaine du registre
-
Un domaine de registre Container Registry inclut une clé de région ou un identificateur de région Container Registry. Un domaine de registre Container Registry présente l'un des formats suivants :
- (recommandé)
ocir.<region-identifier>.oci.oraclecloud.com
<region-key>.ocir.io
(domaines OC1 uniquement)<region-identifier>.ocir.io
(domaines OC1 uniquement)
Par exemple :
ocir.us-ashburn-1.oci.oraclecloud.com
iad.ocir.io/ansh81vru1zp
us-phoenix-1.ocir.io
Pour obtenir la liste des identificateurs de région et des clés de région, reportez-vous à Disponibilité par région.
- (recommandé)
- identificateur de région
-
Un identificateur de région (parfois appelé
<region-identifier>
dans cette documentation) identifie la région Container Registry que vous utilisez.Par exemple :
us-ashburn-1
us-phoenix-1
Pour obtenir la liste des identifiants de région, reportez-vous à Disponibilité par région.
- clé de région
-
Une clé de région (parfois appelée
<region-key>
dans cette documentation) identifie la région Container Registry que vous utilisez.Par exemple :
iad
phx
Pour obtenir la liste des clés de région, reportez-vous à Disponibilité par région.
- espace de noms de location,
-
Un espace de noms de location (parfois appelé
<tenancy-namespace>
dans cette documentation) est une chaîne de caractères alphanumériques générée automatiquement, aléatoire et immuable. Par exemple, l'espace de noms de la locationacme-dev
peut êtreansh81vru1zp
.Pour certaines locations antérieures, la chaîne d'espace de noms peut être identique au nom de la location en minuscules (par exemple,
acme-dev
). Pour trouver l'espace de noms de la location en cours, ouvrez le menu Profilet sélectionnez Location. L'espace de noms de location est affiché dans le champ Espace de noms Object Storage.
- nom de référentiel
-
Un nom de référentiel (parfois appelé
<repo-name>
dans cette documentation) est le nom d'un référentiel dans Container Registry, vers et à partir duquel vous pouvez propager et extraire des images. Les noms de référentiel peuvent inclure des barres obliques et sont uniques dans tous les compartiments de la location entière.Par exemple :
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
Bien qu'un nom de référentiel puisse inclure des barres obliques, cette dernière ne représente pas une structure de répertoire hiérarchique. Il s'agit simplement d'un caractère dans une chaîne de caractères. Pour plus de commodité, vous pouvez choisir de commencer les noms de plusieurs référentiels différents avec la même chaîne, se terminant peut-être par une barre oblique (telle que
project01/
). Une telle chaîne est parfois appelée "préfixe de nom de référentiel". Toutefois, un référentiel nomméproject01/acme-web-app
n'a pas besoin d'avoir de relation avec un référentiel nomméproject01/my-test-app
. L'utilisation du même préfixe de nom de référentiel pour certains référentiels facilite simplement l'organisation et le contrôle de leur accès dans Container Registry, qui peut contenir de nombreux autres référentiels. - identificateur du registre
-
Un identificateur de registre inclut un domaine de registre Container Registry et un espace de noms de location, au format
<registry-domain>/<tenancy-namespace>
Par exemple :
ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp
iad.ocir.io/ansh81vru1zp/project01
us-phoenix-1.ocir.io/cbujx0t3wa3r
- chemin de l'image
-
Un chemin d'image est le chemin complet d'une image particulière dans un registre. Il étend le chemin du référentiel en ajoutant l'identificateur de version associé à l'image. Un chemin d'image a le format
<registry-domain>/<tenancy-namespace>/<repo-name>:<version>
Par exemple :
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
- identificateur de version
-
Un identificateur de version (parfois appelé
<version>
dans cette documentation) est une chaîne utilisée pour faire référence à une version d'image particulière dans un référentiel connu. Par exemple :4.6.3
4.6.4
v2.0.test
- nom d'image
-
Le terme "nom de l'image" est parfois utilisé comme un moyen à court terme de faire référence à une image particulière dans un référentiel particulier. Dans ce contexte, un nom d'image a la structure suivante :
<repo-name>:<version>
Par exemple :
project01/acme-web-app
:4.6.3
project01/acme-web-app
:4.6.4
my-hello-app:latest