Conceptos de contenedores

Artifact Registry te permite almacenar y organizar imágenes de contenedores y otros artefactos en repositorios para que puedas administrar e implementar cargas de trabajo en diferentes entornos. Puedes usar capas de imágenes, etiquetas y resúmenes de manifiestos para controlar las versiones de las imágenes y administrar las implementaciones.

En esta página, los ejemplos de Artifact Registry se refieren principalmente a repositorios en formato de Docker. Para obtener más información, consulta Formatos admitidos y la Descripción general del repositorio.

Registros

Un registro almacena y distribuye imágenes y artefactos de contenedores organizados por nombre dentro de 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, proporcionan opciones para crear repositorios públicos o privados. Cuando extraes imágenes públicas, es importante que comprendas los posibles problemas de seguridad. Lee sobre la administración de dependencias para obtener más información sobre la supervisión de vulnerabilidades y la reducción de la huella de tus 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 a cada repositorio. Los repositorios relacionados se pueden agrupar por etiquetas.

Repositorios de Artifact Registry y administración de imágenes

En los repositorios con formato Docker de Artifact Registry, 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 imágenes de contenedores, consulta Versiones de imágenes de contenedores.

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 creado por tuGoogle Cloud ID del proyecto.
  • quickstart-docker-repo es el espacio de nombres de tu proyecto en el que almacenas imágenes. En Artifact Registry, esta parte de la ruta se denomina repositorio.
  • quickstart-image es el nombre de todas las versiones de quickstart-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 hacer referencia a una imagen de contenedor. Las imágenes de contenedor son paquetes de software que contienen todos los elementos necesarios para ejecutarse en cualquier entorno. Para obtener más información, consulta ¿Qué son los contenedores?

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 indicar 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 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 hacen referencia las imágenes del registro se borran todos los días.

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, por lo que la primera imagen quedará sin etiqueta. Aún se puede acceder a la imagen sin etiqueta a través de sus resúmenes de manifiesto.

Si usas etiquetas inmutables, no se permiten las siguientes acciones:

  • Borra una imagen etiquetada. Aún se permite borrar imágenes sin etiquetar.
  • Quita una etiqueta de una imagen.
  • Envía una imagen con una etiqueta que ya use 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 que no sea latest, no se agrega la etiqueta latest. Por lo tanto, es posible que la imagen latest no incluya los cambios más recientes. Recomendamos usar etiquetas que no sean latest para las versiones.

Manifiestos

Los manifiestos de imagen identifican y especifican de forma única las capas dentro de cada imagen. Los manifiestos se identifican con hashes SHA-256 únicos llamados resúmenes de manifiesto. Los resúmenes de manifiesto 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 por su resumen de manifiesto.

Si usas herramientas para analizar o escanear imágenes, los resultados de estas herramientas solo son válidos para la imagen escaneada. 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 las etiquetas y los manifiestos específicos de Artifact Registry, consulta Administra imágenes y Usa imágenes de contenedores.

Precalentamiento de imágenes

En el caso de las aplicaciones sensibles a la latencia que usan la transmisión de imágenes, esperar a que se extraiga una imagen por primera vez en un nodo o instancia nuevos, lo que a menudo se denomina "inicio en frío", puede generar demoras no deseadas. El precalentamiento te permite iniciar explícitamente la descarga de imágenes en la caché de Transmisión de imágenes antes de que se soliciten. Este proceso ayuda a garantizar que tu imagen esté disponible para una entrega rápida cuando tu clúster de GKE la solicite.

Para precalentar imágenes, usa la API de Artifact Registry. Para obtener instrucciones, consulta Cómo reducir la latencia con el precalentamiento de imágenes.

¿Qué sigue?