Conceptos de los contenedores

En este documento, se presentan conceptos clave relacionados con los contenedores, como registros, repositorios y artefactos. También se incluye información básica sobre cómo estos conceptos se aplican a Artifact Registry y Container Registry .

Registros

Un registro almacena y distribuye imágenes de contenedores y artefactos organizados en repositories. Un registro puede contener un solo repositorio o varios repositorios, y pueden ser públicos o privados.

Los servicios de Registry como Docker Hub y Artifact Registry proporcionan para crear repositorios públicos o privados. Cuando extraes imágenes públicas, es importante comprender las posibles inquietudes de seguridad. Más información administración de dependencias para obtener más información sobre la vulnerabilidad supervisar y reducir la huella de la dependencia.

Los registros se organizan en repositorios que almacenan imágenes de contenedores individuales. Artifact Registry te permite crear varios repositorios en un solo al proyecto y asociar una específica región o multirregión con cada repositorio. Los repositorios relacionados se pueden agrupar por etiquetas.

Repositorios

Las imágenes y los artefactos con el mismo nombre, pero con diferentes etiquetas, se organizan en de Cloud Storage. Si no se especifica ninguna etiqueta cuando se envía una imagen a un repositorio, la imagen está etiquetada con la etiqueta latest. Si se envía otra imagen sin especificar una etiqueta, la etiqueta más reciente se mueve de la imagen original a la más reciente, lo que deja la primera imagen sin una etiqueta. Recomendamos agregar una etiqueta a los lanzamientos que no sea el más reciente.

El término repositorio no siempre se usa de forma coherente. en Artifact Registry es más útil usar partes de la ruta a la imagen para identificar el proyecto región o multirregión y el nombre de la imagen, junto con el etiqueta o 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 de Docker.
  • PROJECT es el espacio de nombres que creó tu ID del proyecto de Google Cloud.
  • 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 de acceso se denomina repositorio.
  • quickstart-image es el repositorio 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 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.

Por ejemplo:

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

  • us-west1-docker.pkg.dev es el registro.
  • /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 containers se conoce 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 contenedores almacenadas en repositorios se construyen de forma incremental usando 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, en 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 seguridad, las capas no se comparten entre distintos registros.

Cuando borras una imagen de contenedor, las capas no se borran de inmediato. Las capas a las que no haga referencia 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 envías una imagen dos veces con la misma etiqueta, la etiqueta se quita del y se mueve a la segunda, lo que deja a la primera sin etiquetas. El De todos modos, se puede acceder a la imagen sin etiquetar a través de los resumen del manifiesto.

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. Recomendaciones con etiquetas distintas de 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 hash SHA-256 únicos llamados resúmenes de manifiestos. Los resúmenes de manifiestos son más confiables y seguros que las etiquetas porque hay varios varias versiones de la misma imagen se pueden enviar a la misma etiqueta y dejar algunas imágenes sin etiquetas, mientras que cada imagen se especifica de forma única mediante su resumen del manifiesto.

Si usas herramientas para escanear o analizar imágenes, los resultados de estas herramientas solo válido 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 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?