Artifact Registry es un servicio universal de administración de paquetes que admite contenedores y otros formatos. Obtén información sobre cómo realizar la transición desde Container Registry para obtener más flexibilidad y control sobre los artefactos.

Envía y extrae imágenes

Enviar (subir) y extraer (descargar) las imágenes son dos de las tareas más comunes de Container Registry.

Para obtener instrucciones sobre cómo generar listas, etiquetar y borrar imágenes, consulta Gestionar imágenes.

Antes de comenzar

Asegúrate de que se cumpla lo siguiente:

  1. Habilitaste Container Registry en tu proyecto.

  2. Instalaste y configuraste Docker.

  3. Verificaste que tienes permisos para enviar y extraer imágenes.

Envía una imagen a un registro

Antes de enviar cualquier imagen local a Container Registry, primero debes etiquetarla con el nombre del registro.

La primera imagen que envíes a un host multirregional creará el bucket de almacenamiento para ese nombre de host en el proyecto de Google Cloud.

Etiqueta la imagen local con el nombre del registro

  1. Determina el nombre del registro:

    1. Elige un nombre de host que especifique la ubicación en la que almacenarás la imagen.

      • gcr.io aloja imágenes en centros de datos en los Estados Unidos, pero la ubicación puede cambiar en el futuro.
      • us.gcr.io aloja imágenes en centros de datos en los Estados Unidos, en un depósito de almacenamiento independiente de las imágenes alojadas por gcr.io.
      • eu.gcr.io aloja las imágenes en la Unión Europea.
      • asia.gcr.io aloja las imágenes en centros de datos en Asia.

      Estas ubicaciones corresponden a las multirregiones de los depósitos de almacenamiento de Cloud Storage. Cuando envías una imagen a un registro con un nombre de host nuevo, Container Registry crea un bucket de almacenamiento en la multirregión especificada. Este bucket es el almacenamiento subyacente del registro. Dentro de un proyecto, todos los registros con el mismo nombre de host comparten un bucket de almacenamiento.

      En la consola, el nombre de host de las imágenes aparecerá en Ubicación.

    2. Elige un nombre de imagen, que puede ser diferente del nombre de la imagen en tu máquina local.

    3. Combina el nombre de host, el ID del proyecto de Google Cloud Console y el nombre de la imagen:

      HOSTNAME/PROJECT-ID/IMAGE
      

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

  2. Etiqueta la imagen local con el nombre del registro mediante el siguiente comando:

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE
    

    En el ejemplo anterior, SOURCE_IMAGE es el nombre de la imagen local o el ID de la imagen.

    Este comando asigna un nombre a la imagen con el nombre del registro y aplica la etiqueta latest. Si deseas aplicar una etiqueta diferente, utiliza el siguiente comando:

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE:TAG
    

Envía la imagen etiquetada a Container Registry

El auxiliar de credenciales de Docker es la forma más sencilla de configurar Docker para que se autentique directamente con Container Registry. Luego, usas el comando docker para etiquetar, enviar y extraer imágenes. Como alternativa, puedes usar las bibliotecas cliente para administrar las imágenes del contenedor o puedes interactuar directamente con la API de Docker.

Envía la imagen etiquetada a Container Registry con el siguiente comando:

docker push HOSTNAME/PROJECT-ID/IMAGE

Este comando envía la imagen con la etiqueta latest. Si deseas enviar una imagen con una etiqueta diferente, usa el siguiente comando:

docker push HOSTNAME/PROJECT-ID/IMAGE:TAG

Cuando envías una imagen a un registro con un nuevo nombre de host, Container Registry crea un depósito de almacenamiento en la ubicación multirregional especificada. Después de enviar tu imagen, puedes hacer lo siguiente:

  • Ve a Cloud Console para ver el registro y la imagen.

  • Ejecuta gcloud container images list-tags para ver las etiquetas de la imagen y el resumen generado automáticamente:

    gcloud container images list-tags HOSTNAME/PROJECT-ID/IMAGE
    

    La salida del comando es similar a la siguiente información:

    DIGEST        TAGS        TIMESTAMP
    44bde...      test        2017-..-..
    

Extrae las imágenes de un registro

Para extraer imágenes desde Container Registry, usa el siguiente comando:

docker pull HOSTNAME/PROJECT-ID/IMAGE:TAG

o

docker pull HOSTNAME/PROJECT-ID/IMAGE@IMAGE_DIGEST

donde:

  • HOSTNAME aparece en Ubicación en la consola. Es una de estas cuatro opciones: gcr.io, us.gcr.io, eu.gcr.io o asia.gcr.io.
  • HOSTNAME es el ID de tu proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • IMAGE es el nombre de la imagen en Container Registry.
  • TAG es la etiqueta que se aplica a la imagen. En un registro, las etiquetas son exclusivas de una imagen.
  • IMAGE_DIGEST es el valor de hash sha256 del contenido de la imagen. En Cloud Console, haz clic en la imagen específica para ver sus metadatos. El resumen se muestra como el resumen de la imagen.

Haz lo siguiente para obtener el comando de extracción de una imagen específica:

  1. Haz clic en el nombre de una imagen para ir al registro específico.

  2. En el registro, marca la casilla junto a la versión de la imagen que deseas extraer.

  3. Haz clic en MOSTRAR COMANDO DE EXTRACCIÓN en la parte superior de la página.

  4. Copia el comando de extracción, que identifica la imagen mediante la etiqueta o el resumen.

¿Qué sigue?