Conceptos de contenedores

En este documento, se presentan conceptos clave relacionados con los contenedores, incluidos 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.

Registros

Un registro almacena y distribuye imágenes de contenedor y artefactos organizados por nombre dentro de los repositorios. Un registro puede contener un solo repositorio 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 se extraen imágenes públicas, es importante comprender las posibles preocupaciones de seguridad. Lee sobre la administración de dependencias para obtener más información sobre la supervisión de vulnerabilidades y reducir la huella de dependencia.

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 región o multirregión específica con cada repositorio. Los repositorios relacionados se pueden agrupar por etiquetas.

Repositorios

Las imágenes y los artefactos con el mismo nombre, pero con etiquetas diferentes, se organizan en repositorios. Si no se especifica una etiqueta cuando se envía una imagen a un repositorio, se etiqueta la imagen con la etiqueta más reciente. Si se envía otra imagen sin especificar una etiqueta, la etiqueta más reciente se mueve de la imagen original a la imagen más reciente y deja la primera imagen sin una etiqueta. Te recomendamos otorgar a las actualizaciones una etiqueta que no sea latest.

El términorepositorio no siempre se usa de manera coherente; dentro de Artifact Registry, es más útil usar partes de la ruta de acceso a la imagen para identificar el proyecto, región o multirregión y el nombre de la imagen junto con eletiqueta oresumen del manifiesto para identificar la versión correcta.

Por ejemplo:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-central1 es la ubicación del repositorio.
  • docker.pkg.dev es el nombre de host para los repositorios de Docker.
  • PROJECT es el espacio de nombres que crea el ID del proyecto de Google Cloud.
  • quickstart-docker-repo es el espacio de nombres en tu proyecto en el que almacenas imágenes. En Artifact Registry, esta parte de la ruta se denomina repositorio.
  • quickstart-image es el repositorio de todas las versiones de quickstart-image y se suele denominar la imagen.
  • tag1 es la etiqueta que especifica la versión de la imagen.

Imágenes

Los artefactos y las imágenes se pueden almacenar en Artifact Registry. Un artefacto puede ser cualquier elemento: 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 repositorios. Para especificar la imagen y la versión correctas, se deben especificar el registro y el artefacto únicos.

Por ejemplo:

docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-docker.pkg.dev es el registro, incluida la multirregión us.
  • /google-samples/containers/gke/ son el espacio de nombres y los espacios de nombres secundarios. En Artifact Registry, google-samples es el proyecto de Google Cloud y se hace referencia a containers como el repositorio de Artifact Registry.
  • hello-app es el nombre del artefacto.
  • :1.0 es la etiqueta que especifica la versión del artefacto que se extraerá.

Capas

Las imágenes de contenedor almacenadas en repositorios se construyen de forma incremental con capas. Distintas 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. En un registro, las imágenes con capas comunes comparten esas capas, lo que aumenta la eficiencia del almacenamiento. Por seguridad, las capas no se comparten entre diferentes registros.

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 envías una imagen dos veces con la misma etiqueta, esta se quita de la primera imagen y se mueve a la segunda, dejando la primera imagen sin una etiqueta. Se puede acceder a la imagen sin etiquetar mediante sus resúmenes de manifiesto.

La etiqueta latest es una etiqueta especial que se adjunta cuando las imágenes se envían sin una etiqueta.

Por ejemplo:

docker push us-docker.pkg.dev/google-samples/containers/gke/hello-app

Se envía la imagen a hello-app:latest

docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app

que 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 latest la imagen esté detrás de los cambios más actualizados. Recomendamos usar etiquetas que no sean latest para las versiones. Si quieres obtener más información para etiquetar imágenes, consulta Cómo etiquetar correctamente tus imágenes.

Manifiestos

Los manifiestos de imágenes identifican y especifican de forma única las capas dentro de cada imagen. Los manifiestos se identifican mediante hash SHA-256 únicos llamados resúmenes de manifiestos. Los resúmenes de manifiestos son más confiables y seguros que las etiquetas, ya que se pueden enviar varias versiones de la misma imagen a la misma etiqueta, lo que deja algunas imágenes sin etiquetas. A su vez, cada resumen se especifica de forma única por su resumen de manifiesto.

Si usas herramientas para analizar o analizar imágenes, los resultados de estas herramientas solo son válidos para la imagen analizada. Para asegurarte de implementar la imagen que se analizó, no puedes basarte en la etiqueta, ya que puede cambiar la imagen a la que hace referencia la etiqueta.

Para obtener más información sobre el manifiesto y el etiquetado específicos de Artifact Registry, consulta Administra imágenes y Usa imágenes de contenedor.

¿Qué sigue?