Nombres de repositorios y de imágenes

Artifact Registry usa una convención de asignación de nombres para identificar los repositorios y las imágenes cuando usas los comandos de gcloud, docker y la API para interactuar con los repositorios.

Repositorios de Docker

El nombre completo de un repositorio de Docker está en el siguiente formato:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

Donde:

  • LOCATION es la ubicación regional o multirregional del repositorio.

  • PROJECT es el ID del proyecto de la consola de Google Cloud. Si el ID de tu proyecto contiene dos puntos (:) y trabajas con un repositorio de Docker, consulta Proyectos con alcance de dominio.

  • REPOSITORY es el nombre del repositorio.

Por ejemplo, considera una imagen con las siguientes características:

  • Ubicación del repositorio: us
  • Formato del repositorio: docker
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project

El repositorio se especifica de la siguiente manera:

us-docker.pkg.dev/my-project/my-repo

Nombres de imágenes de contenedores

El nombre completo de una imagen de contenedor tiene uno de los siguientes formatos:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

o

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

o

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

Donde:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID del proyecto de la consola de Google Cloud. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY es el nombre del repositorio en el que se almacena la imagen.
  • IMAGE es el nombre de la imagen en el repositorio.
  • TAG es la etiqueta de la versión de la imagen que deseas extraer.
  • IMAGE-DIGEST es el valor de hash sha256 del contenido de la imagen. En la consola de Google Cloud, haz clic en la imagen específica para ver sus metadatos. El resumen se muestra como el resumen de la imagen.

    Si no especificas una etiqueta o un resumen, Artifact Registry busca la imagen con la etiqueta predeterminada latest. Consulta Versiones de la imagen de contenedor para obtener información sobre las versiones.

Por ejemplo, considera una imagen con las siguientes características:

  • Ubicación del repositorio: us
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: test
  • Etiqueta: staging

Esta versión de la imagen etiquetada como etapa de pruebas se especifica de la siguiente manera:

us-docker.pkg.dev/my-project/my-repo/test:staging

Versiones de la imagen de contenedor

Un repositorio puede contener muchas imágenes de contenedor, que pueden tener diferentes versiones. Para identificar una versión específica de una imagen, puedes especificar el resumen o la etiqueta de la imagen.

Resumen
Un resumen de imágenes es un hash generado automáticamente a partir del índice de imágenes o del manifiesto de imágenes. Cada resumen de imagen es un identificador único para una versión de la imagen y no se puede cambiar. El resumen es el valor de hash sha256 del contenido de la imagen.
Etiqueta

Una etiqueta de imagen es una etiqueta y, a menudo, es una string legible, como v1.1 o development. Una etiqueta solo puede apuntar a una sola versión de una imagen. En Artifact Registry, puedes configurar un repositorio de Docker para permitir etiquetas de imágenes mutables o aplicar etiquetas de imagen inmutables (versión preliminar).

  • Mutable: Una etiqueta apunta a una sola versión de una imagen, pero el resumen específico al que hace referencia puede cambiar.

    Un enfoque común consiste en etiquetar imágenes con un identificador de versión, como v1.1, en el momento de la compilación. Cuando la compilación envía varias versiones de la imagen al registro con la misma etiqueta v1.1, la etiqueta hace referencia al resumen de la última versión que se envió al registro. Aunque las etiquetas de imágenes mutables proporcionan una forma conveniente de etiquetar versiones, una persona que actúa de mala fe también puede manipularlas para asociar una etiqueta con una versión maliciosa de una imagen.

  • Inmutable: En el repositorio, una etiqueta siempre apunta al mismo resumen de la imagen. Si se configura un repositorio de Artifact Registry para etiquetas de imagen 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 usa otra versión de la imagen en el repositorio.

Por ejemplo, considera una imagen con las siguientes características:

  • Ubicación del repositorio: us
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: test
  • Etiqueta: staging
  • Resumen: sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Para identificar la imagen con la etiqueta, agrega :staging al nombre de la imagen:

us-docker.pkg.dev/my-project/my-repo/test:staging

Para identificarla con el resumen, agrega @ al nombre de la imagen, seguido del resumen:

us-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

En la consola, en la columna Etiquetas de la pantalla Imágenes, se muestra una lista de las etiquetas de la imagen. Haz clic en la versión de la imagen para ver los metadatos, incluido el resumen de la imagen.

Consulta Etiqueta imágenes para obtener más información sobre el etiquetado.

Proyectos con alcance de dominio

Si tu proyecto tiene permisos para tu dominio, el ID del proyecto incluye el nombre del dominio seguido de dos puntos (:). Debido a la forma en que Docker trata los dos puntos, debes reemplazar el carácter de dos puntos por una barra diagonal cuando especifiques el resumen de una imagen en Artifact Registry. Identifica las imágenes en estos tipos de proyectos con el siguiente formato:

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

Por ejemplo, el proyecto con ID example.com:my-project podría tener la siguiente imagen:

us-docker.pkg.dev/example.com/my-project/my-repo/image-name

Nombres de repositorios como URLs

Para acceder a un repositorio o artefacto de un repositorio en la consola de Google Cloud, agrega https:// a su nombre completo.

Por ejemplo, para ver el repositorio us-maven.pkg.dev/my-project/my-repo, usa la siguiente URL:

https://us-maven.pkg.dev/my-project/my-repo

Para ver la imagen us-docker.pkg.dev/example.com/my-project/my-repo/my-image, usa la siguiente URL:

https://us-docker.pkg.dev/example.com/my-project/my-repo/my-image

Cualquier usuario autenticado que tenga permiso para acceder al repositorio puede usar estos vínculos.