En este documento se presentan los conceptos clave relacionados con las imágenes de contenedor, como los registros, los repositorios y los artefactos. También se incluye información básica sobre cómo se aplican estos conceptos a Artifact Registry y Container Registry.
Los ejemplos de Artifact Registry que se incluyen en esta página hacen referencia principalmente a repositorios de formato Docker y gcr.io
. Para obtener más información, consulta Formatos admitidos y Descripción general del repositorio.
Registros
Un registro almacena y distribuye imágenes de contenedor y artefactos organizados por nombre en repositorios. Un registro puede contener un solo repositorio o varios, y puede ser público o privado.
Los servicios de registro, como Docker Hub y Artifact Registry, ofrecen opciones para crear repositorios públicos o privados. Al extraer imágenes públicas, es importante conocer los posibles problemas de seguridad. Consulta información sobre la gestión de dependencias para obtener más información sobre la monitorización de vulnerabilidades y la reducción de la huella de tus dependencias.
Los registros se organizan en repositorios que almacenan imágenes de contenedor individuales. Artifact Registry te permite crear varios repositorios en un solo proyecto y asociar una ubicación regional o multirregional específica a cada repositorio. Los repositorios relacionados se pueden agrupar por etiquetas.Gestión de repositorios e imágenes de Artifact Registry
En los repositorios con formato Docker de Artifact Registry, puede 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 a una etiqueta. Las etiquetas pueden ser mutables o inmutables. Para obtener más información sobre las versiones y las etiquetas de las imágenes de contenedor, consulta Versiones de imágenes de contenedor.
Artifact Registry suele hacer referencia a partes de la ruta de 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 repositoriodocker.pkg.dev
es el nombre de host de los repositorios con formato Docker.PROJECT
es el espacio de nombres creado por tu Google Cloud ID de proyecto.quickstart-docker-repo
es el espacio de nombres de tu proyecto donde almacenas 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 se suele denominar 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 hacer referencia a una imagen de contenedor. Las imágenes de contenedor son paquetes de software que incluyen todos los elementos necesarios para que ejecutes tus productos en cualquier entorno. Consulta más información sobre qué son los contenedores.
Las imágenes se insertan o se suben a los repositorios, y se extraen o se descargan de los repositorios. Para especificar la imagen y la versión correctas, se deben indicar el registro y el artefacto únicos.
Para obtener más información sobre los nombres de repositorios e imágenes en Artifact Registry, consulta el artículo Nombres de repositorios e imágenes.
Capas
Las imágenes de contenedor almacenadas en repositorios se construyen de forma incremental mediante capas. Diferentes imágenes pueden usar algunas de las mismas capas. Las capas se definen de diferentes formas en función del tipo de imagen. Por ejemplo, cada instrucción de un Dockerfile se corresponde con una capa de la imagen de Docker. En 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 eliminas una imagen de contenedor, las capas no se eliminan inmediatamente. Las capas a las que no hace referencia ninguna imagen del registro se eliminan a diario.
Etiquetas
Los usuarios añaden etiquetas al enviar o extraer 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, la etiqueta se quitará de la primera imagen y se moverá a la segunda, por lo que la primera imagen se quedará sin etiqueta. Se puede seguir accediendo a la imagen sin etiquetar mediante sus resúmenes de manifiesto.
Si usas etiquetas inmutables, no puedes hacer lo siguiente:
- Eliminar una imagen etiquetada. Se sigue permitiendo eliminar imágenes sin etiquetar.
- Quita una etiqueta de una imagen.
- Envía una imagen con una etiqueta que ya esté en uso por otra versión de la imagen en el repositorio.
La etiqueta latest
es una etiqueta especial que se añade cuando se insertan imágenes sin 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 que no sea latest
, no se añade la etiqueta latest
. Por lo tanto, es posible que la imagen latest
no tenga los cambios más recientes. Recomendamos usar etiquetas que no sean latest
para las versiones.
Archivos de manifiesto
Los manifiestos de imágenes identifican de forma exclusiva y especifican las capas de cada imagen. Los manifiestos se identifican mediante hashes SHA-256 únicos llamados resúmenes de manifiestos. Los resúmenes de manifiesto son más fiables 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 hace que algunas imágenes no tengan etiquetas, mientras que cada imagen se especifica de forma única mediante su resumen de manifiesto.
Si usas herramientas para escanear o analizar imágenes, los resultados de estas herramientas solo serán válidos para la imagen escaneada. Para asegurarse de que implementa la imagen que se ha analizado, no puede depender de la etiqueta, ya que la imagen a la que hace referencia la etiqueta puede cambiar.
Para obtener más información sobre el etiquetado y los manifiestos específicos de Artifact Registry, consulta los artículos Gestionar imágenes y Usar imágenes de contenedor.
Siguientes pasos
- Guía de inicio rápido de Docker
- Trabajar con imágenes de contenedor
- Guía de inicio rápido de Helm
- Trabajar con gráficos de Helm
- Consulta información sobre DevOps y descubre el programa de investigación de DORA.