En este documento, se presentan conceptos clave relacionados con las imágenes de contenedores, incluidos los registros, los repositorios y los artefactos. También se incluye información básica sobre cómo estos conceptos se aplican a Artifact Registry y Container Registry.
Los ejemplos de Artifact Registry que se muestran en esta página se refieren principalmente a repositorios en formato Docker y gcr.io
. Para obtener más información, consulta Formatos compatibles y la descripción general del repositorio.
Registros
Un registro almacena y distribuye imágenes y artefactos de contenedores organizados por nombre dentro de los repositorios. Un registro puede contener uno o varios repositorios, y puede ser público o privado.
Los servicios de registro, como Docker Hub y Artifact Registry, proporcionan opciones para crear repositorios públicos o privados. Cuando extraes imágenes públicas, es importante comprender las posibles inquietudes de seguridad. Obtén información sobre la administración de dependencias para obtener más información sobre la supervisión de vulnerabilidades y la reducción de tu huella de dependencias.
Los registros se organizan en repositorios que almacenan imágenes de contenedores individuales. Artifact Registry te permite crear varios repositorios en un solo proyecto y asociar una ubicación regional o multirregional específica con cada uno. Los repositorios relacionados se pueden agrupar por etiquetas.Repositorios de Artifact Registry y administración de imágenes
En los repositorios de Artifact Registry con formato Docker, puedes almacenar varias imágenes de contenedor con nombres diferentes en el mismo repositorio. Cada versión de una imagen se identifica por su resumen y se puede asociar con una etiqueta. Las etiquetas pueden ser mutables o inmutables. Para obtener más información sobre las versiones y etiquetas de las imágenes de contenedor, consulta Versiones de imágenes de contenedor.
Por lo general, Artifact Registry hace referencia a partes de la ruta de acceso a una imagen para identificar el proyecto, la ubicación regional o multirregional y el nombre de la imagen junto con la etiqueta o el resumen del manifiesto para identificar la versión correcta.Por ejemplo:
docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
us-west1
es la ubicación del repositorio.docker.pkg.dev
es el nombre de host de los repositorios con formato Docker.PROJECT
es el espacio de nombres que crea tu Google Cloud ID de proyecto.quickstart-docker-repo
es el espacio de nombres de tu proyecto en el que almacenas las imágenes. En Artifact Registry, esta parte de la ruta se denomina repositorio.quickstart-image
es el nombre de todas las versiones dequickstart-image
y, a menudo, se conoce como la imagen.tag1
es la etiqueta que especifica la versión de la imagen.
Imágenes
Tanto los artefactos como las imágenes se pueden almacenar en Artifact Registry. Un artefacto puede ser cualquier cosa: un archivo de texto, una imagen de Docker o un gráfico de Helm, mientras que una imagen suele referirse a una imagen de contenedor. Las imágenes de contenedores son paquetes de software que contienen todos los elementos necesarios para ejecutarse en cualquier entorno. Lee Qué son los contenedores para obtener más información.
Las imágenes se envían o suben a los repositorios, y se extraen o descargan de ellos. Para especificar la imagen y la versión correctas, se deben especificar el registro y el artefacto únicos.
Para obtener más información sobre los nombres de repositorios y de imágenes en Artifact Registry, consulta Nombres de repositorios y de imágenes.
Capas
Las imágenes de contenedor almacenadas en los repositorios se construyen de forma incremental con capas. Diferentes imágenes pueden usar algunas de las mismas capas. Las capas se definen de diferentes maneras según el tipo de imagen. Por ejemplo, cada instrucción en un Dockerfile corresponde a una capa en la imagen de Docker. Dentro de un registro, las imágenes con capas comunes comparten esas capas, lo que aumenta la eficiencia del almacenamiento. Por motivos de seguridad, las capas no se comparten entre diferentes registros.
Cuando borras una imagen de contenedor, las capas no se borran de inmediato. Las capas a las que no se hace referencia en ninguna imagen del registro se borran a diario.
Etiquetas
Los usuarios agregan etiquetas cuando envían o extraen una imagen a un repositorio para especificar la versión de una imagen. Una imagen puede tener una o varias etiquetas, o ninguna. Si usas etiquetas mutables y envías una imagen dos veces con la misma etiqueta, esta se quitará de la primera imagen y se moverá a la segunda, lo que dejará la primera imagen sin una etiqueta. Aún se puede acceder a la imagen sin etiquetar con sus resúmenes de manifiesto.
Si usas etiquetas inmutables, no se permiten las siguientes acciones:
- Borrar una imagen etiquetada Aún se permite borrar imágenes sin etiquetar.
- Quita una etiqueta de una imagen.
- Enviar una imagen con una etiqueta que ya usa otra versión de la imagen en el repositorio
La etiqueta latest
es una etiqueta especial que se agrega cuando se envían imágenes sin una etiqueta.
Por ejemplo:
docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app
envía la imagen a hello-app:latest
docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app
extrae la imagen hello-app:latest
.
Es importante tener en cuenta que, cuando se envía una imagen a un repositorio con una etiqueta distinta de latest
, no se agrega la etiqueta latest
, por lo que es posible que la imagen latest
esté detrás de los cambios más actualizados. Recomendamos usar etiquetas que no sean latest
para las versiones.
Manifiestos
Los manifiestos de imagen identifican y especifican de forma única las capas de cada imagen. Los manifiestos se identifican con valores hash SHA-256 únicos llamados resúmenes de manifiesto. Los resúmenes de manifiestos son más confiables y seguros que las etiquetas porque, en los repositorios con etiquetas mutables, se pueden enviar varias versiones de la misma imagen a la misma etiqueta, lo que deja algunas imágenes sin etiquetas, mientras que cada imagen se especifica de forma única con su resumen de manifiesto.
Si usas herramientas para leer o analizar imágenes, sus resultados solo serán válidos para la imagen que se leyó. Para asegurarte de implementar la imagen que se leyó, no puedes confiar en la etiqueta porque es posible que la imagen a la que se refiera haya cambiado.
Para obtener más información sobre el etiquetado y los manifiestos específicos de Artifact Registry, consulta Cómo administrar imágenes y Cómo usar imágenes de contenedores.
¿Qué sigue?
- Guía de inicio rápido de Docker
- Trabaja con imágenes de contenedor
- Guía de inicio rápido de Helm
- Trabaja con gráficos de Helm
- Obtén información sobre DevOps y explora el programa de investigación de DORA.