En este documento, se presentan conceptos clave relacionados con los contenedores, incluidos registros, repositorios y 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 en 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, ofrecen opciones para crear repositorios públicos o privados. Cuando extraes imágenes públicas, es importante comprender 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 cómo reducir tu huella de dependencia.
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 región o multirregión específica a cada repositorio. Los repositorios relacionados se pueden agrupar por etiquetas.
Repositorios
Las imágenes y los artefactos con el mismo nombre, pero las etiquetas diferentes se organizan en repositorios. Si no se especifica ninguna etiqueta cuando se envía una imagen a un repositorio, la imagen se etiqueta con la etiqueta latest. Si se envía otra imagen sin especificar una etiqueta, la etiqueta latest se mueve de la imagen original a la más nueva, y la primera imagen queda sin etiqueta. Te recomendamos que asignes una etiqueta que no sea latest a las actualizaciones.
El término repositorio 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, la región o multirregión 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-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 de los repositorios de Docker.- PROJECT es el espacio de nombres que creó el 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 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 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. Consulta Qué son los contenedores para obtener más información.
Las imágenes se envían 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 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ónus
./google-samples/containers/gke/
son el espacio de nombres y los subespacios de nombres. En Artifact Registry,google-samples
es el proyecto de Google Cloud ycontainers
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 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.
Etiquetas
Los usuarios agregan etiquetas cuando envían o extraen una imagen a un repositorio para especificar su versión. 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 de la primera imagen y se mueve a la segunda, lo que deja la primera imagen sin ninguna etiqueta. Aún se puede acceder a la imagen sin etiquetar a través de sus resumen de manifiestos.
La etiqueta latest
es una etiqueta especial que se agrega cuando las imágenes se envían sin una etiqueta.
Por ejemplo:
docker push us-docker.pkg.dev/google-samples/containers/gke/hello-app
envía la imagen a hello-app:latest
docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app
extrae la imagen hello-app:latest
.
Es importante tener en cuenta que, cuando una imagen se envía a un repositorio con una etiqueta que no es latest
, no se agrega la etiqueta latest
, por lo que es posible que la imagen latest
se encuentre detrás de los cambios más actualizados. Recomendamos usar etiquetas que no sean latest
para las versiones. Para obtener más información sobre el etiquetado de imágenes, consulta cómo etiquetar de forma correcta 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 hashes únicos SHA-256 llamados resúmenes de manifiestos. Los resúmenes del manifiesto son más confiables y seguros que las etiquetas, ya que 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 son válidos para las imágenes analizadas. Para asegurarte de implementar la imagen que se analizó, no puedes confiar en 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 Administra imágenes y Usa imágenes de contenedor.
¿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
- Lee nuestros recursos sobre DevOps y explora nuestro programa de investigación.