Conceptos de Container Registry
Descubra los conceptos clave que debe comprender antes de utilizar Container Registry.
En este tema se describen los conceptos clave que debe comprender al utilizar Oracle Cloud Infrastructure Registry (también conocido como Container Registry).
Imágenes
Container Registry es un registro compatible con la iniciativa de contenedor abierto. Como resultado, puede almacenar cualquier artefacto que cumpla con las especificaciones de Open Container Initiative, como imágenes de Docker, listas de manifiestos (a veces conocidas como imágenes de arquitectura múltiple) y gráficos de Helm. En las instrucciones de esta documentación se asume que está almacenando y recuperando imágenes de contenedor de Docker mediante la CLI de Docker. Las imágenes de contenedor de Docker se denominan comúnmente imágenes de Docker o simplemente imágenes.
Una imagen de Docker es una plantilla de solo lectura con instrucciones para crear un contenedor de Docker. Una imagen de Docker contiene la aplicación que desea que Docker ejecute como contenedor, junto con cualquier dependencia. Para crear una imagen de Docker, primero debe crear un archivo Dockerfile para describir esa aplicación. A continuación, cree la imagen de Docker del archivo Dockerfile. Una vez que se cree una imagen de Docker, almacénela en un registro de Docker, como Container Registry.
Normalmente, agrupará diferentes versiones de la misma imagen de Docker en un repositorio con nombre en el registro (por ejemplo, en un repositorio denominado 'project01/acme-web-app') y le proporcionará a cada versión de imagen un identificador diferente (por ejemplo, '4.6.3'). Por lo tanto, cada imagen del registro se identifica de forma única mediante la combinación de su nombre de repositorio y su identificador de versión (por ejemplo, 'project01/acme-web-app:4.6.3', 'project01/acme-web-app:4.6.4', etc.).
Repositorios
Un repositorio es una recopilación con nombre significativo de imágenes relacionadas agrupadas por comodidad en Container Registry. Normalmente, agrupará diferentes versiones de la misma imagen de origen en el mismo repositorio (por ejemplo, en un repositorio denominado project01/acme-web-app
) y asignará a cada versión de imagen un identificador diferente (por ejemplo, 4.6.3
). Por lo tanto, cada imagen del registro se identifica de forma única mediante la combinación de su nombre de repositorio y su identificador de versión (por ejemplo, project01/acme-web-app:4.6.3
, project01/acme-web-app:4.6.4
, etc.).
Los repositorios pueden ser privados o públicos. Cualquier usuario con acceso a Internet y conocimiento de la URL correspondiente puede extraer imágenes de un repositorio público en Container Registry.
Existe un repositorio dentro de un arrendamiento, una región y un compartimento concretos. Al hacer referencia al arrendamiento al que pertenece un repositorio, debe especificar el espacio de nombres del arrendamiento. El espacio de nombres del arrendamiento es una cadena aleatoria de caracteres alfanuméricos generada automáticamente. Por ejemplo, el espacio de nombres del arrendamiento acme-dev
puede ser ansh81vru1zp
. Tenga en cuenta que para algunos arrendamientos más antiguos, la cadena de espacios de nombres puede ser la misma que el nombre del arrendamiento en letras minúsculas (por ejemplo, acme-dev
). Para averiguar el espacio a nombre del arrendamiento actual, abra el menú Perfil y seleccione Arrendamiento.
Debe pertenecer al grupo Administradores del arrendamiento o haber obtenido el permiso REPOSITORY_MANAGE para:
- crear un repositorio público nuevo
- cambiar un repositorio existente por un repositorio público
- cambiar un repositorio público existente por un repositorio privado
Si hace que un repositorio sea privado, usted (y los usuarios que pertenecen al grupo Administradores del arrendamiento) podrán realizar cualquier operación en el repositorio. Puede utilizar políticas de identidad para permitir que otros usuarios realicen otras operaciones en los repositorios (públicos y privados) que cree.
Normalmente, antes de transferir cualquier imagen, creará un repositorio vacío en un compartimento y asignará un nombre al repositorio (por ejemplo, project01/acme-web-app
). Si pertenece al grupo Administradores del arrendamiento o se le ha otorgado el permiso REPOSITORY_MANAGE, también puede especificar si el repositorio va a ser privado o público (consulte Políticas para controlar el acceso al repositorio). Una vez creado el repositorio, las imágenes que se transfieren posteriormente a Container Registry que incluyen el nombre del repositorio se transfieren a ese repositorio.
Por ejemplo, por comodidad, puede querer agrupar varias versiones de una imagen en el arrendamiento acme-dev de la región Ashburn en el repositorio denominado project01/acme-web-app
. En primer lugar, cree el repositorio project01/acme-web-app
. A continuación, incluya el nombre del repositorio al transferir la imagen, con el formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>
. Por ejemplo, ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:4.6.3
.
Tenga en cuenta que la creación de un repositorio vacío antes de transferir una imagen seguramente será su flujo de trabajo normal. Y si solo está autorizado a gestionar repositorios en compartimentos y no en el compartimento raíz del arrendamiento, siempre tendrá que crear un repositorio antes de transferir una imagen. Sin embargo, si está en la posición inusual de la mayor parte de la intención de transferir imágenes al compartimento raíz, no es estrictamente necesario crear un repositorio vacío con antelación. Para obtener más información, consulte Creación de un repositorio.
Resumen de terminología
Al trabajar con repositorios en Container Registry, le resultará útil tener una comprensión clara de los siguientes términos y cómo se relacionan entre sí.
- ruta de acceso al repositorio
-
Una ruta de repositorio (a veces denominada
<repo-path>
en esta documentación) es la ruta de acceso completa a un repositorio en Container Registry. Una ruta de acceso al repositorio tiene el formato<registry-domain>/<tenancy-namespace>/<repo-name>
.Por ejemplo:
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 de registro
-
Un dominio de registro de Container Registry incluye una clave de región de Container Registry o un identificador de región. Un dominio de registro de Container Registry tiene uno de los siguientes formatos:
- (recomendado)
ocir.<region-identifier>.oci.oraclecloud.com
<region-key>.ocir.io
(solo dominios OC1)<region-identifier>.ocir.io
(solo dominios OC1)
Por ejemplo:
ocir.us-ashburn-1.oci.oraclecloud.com
iad.ocir.io/ansh81vru1zp
us-phoenix-1.ocir.io
Para obtener la lista de identificadores de región y claves de región, consulte Disponibilidad por región.
- (recomendado)
- identificador de región
-
Un identificador de región (a veces denominado
<region-identifier>
en esta documentación) identifica la región de Container Registry que está utilizando.Por ejemplo:
us-ashburn-1
us-phoenix-1
Para obtener la lista de identificadores de región, consulte Disponibilidad por región.
- clave de la región
-
Una clave de región (a veces denominada
<region-key>
en esta documentación) identifica la región de Container Registry que está utilizando.Por ejemplo:
iad
phx
Para obtener una lista de claves de región, consulte Disponibilidad por región.
- espacio de nombres de arrendamiento
-
Un espacio de nombres de arrendamiento (a veces denominado
<tenancy-namespace>
en esta documentación) es una cadena de caracteres alfanuméricos autogenerada, aleatoria e inmutable. Por ejemplo, el espacio de nombres del arrendamientoacme-dev
puede seransh81vru1zp
.Tenga en cuenta que para algunos arrendamientos más antiguos, la cadena de espacios de nombres puede ser la misma que el nombre de arrendamiento en letras minúsculas (por ejemplo,
acme-dev
). Para averiguar el espacio a nombre del arrendamiento actual, abra el menú Perfily seleccione Arrendamiento. El espacio de nombres de arrendamiento se muestra en el campo Espacio de nombres de almacenamiento de objetos.
- nombre del repositorio
-
Un nombre de repositorio (a veces denominado
<repo-name>
en esta documentación) es el nombre de un repositorio en Container Registry desde el que puede transferir y extraer imágenes. Los nombres de repositorio pueden incluir uno o más caracteres de barra diagonal y son únicos en todos los compartimentos de todo el arrendamiento.Por ejemplo:
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
Tenga en cuenta que, aunque un nombre de repositorio puede incluir caracteres de barra diagonal, la barra no representa una estructura de directorio jerárquica. Es simplemente un carácter en una cadena de caracteres. Para mayor comodidad, puede iniciar los nombres de varios repositorios diferentes con la misma cadena, tal vez terminando en una barra (como
project01/
). Esta cadena se denomina a veces "prefijo de nombre de repositorio". Sin embargo, un repositorio denominadoproject01/acme-web-app
no necesita tener ninguna relación con un repositorio denominadoproject01/my-test-app
. El uso del mismo prefijo de nombre de repositorio para algunos repositorios simplemente facilita la organización y el control del acceso a ellos en Container Registry, que puede contener muchos otros repositorios. - identificador de registro
-
Un identificador de registro incluye un dominio de registro de Container Registry y un espacio de nombres de arrendamiento, con el formato
<registry-domain>/<tenancy-namespace>
Por ejemplo:
ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp
iad.ocir.io/ansh81vru1zp/project01
us-phoenix-1.ocir.io/cbujx0t3wa3r
- ruta de la imagen
-
Una ruta de imagen es la ruta completa a una imagen concreta de un registro. Amplía la ruta del repositorio agregando el identificador de versión asociado a la imagen. Una ruta de imagen tiene el formato
<registry-domain>/<tenancy-namespace>/<repo-name>:<version>
Por ejemplo:
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
- Identificador de Versión
-
Un identificador de versión (a veces denominado
<version>
en esta documentación) es una cadena que se utiliza para hacer referencia a una versión de imagen concreta en un repositorio conocido. Por ejemplo:4.6.3
4.6.4
v2.0.test
- nombre de imagen
-
El término "nombre de imagen" se utiliza a veces como una forma abreviada de hacer referencia a una imagen concreta en un repositorio concreto. En este contexto, un nombre de imagen tiene la estructura:
<repo-name>:<version>
Por ejemplo:
project01/acme-web-app
:4.6.3
project01/acme-web-app
:4.6.4
my-hello-app:latest