Envía y extrae imágenes

En esta página, se describe cómo enviar y extraer imágenes, que son dos de las tareas más comunes que se realizan con Container Registry. Para enviar una imagen nueva a Container Registry, primero debes etiquetarla con el nombre del registro, tal como se describe a continuación.

Para comenzar a usar Container Registry, consulta la guía de inicio rápido.

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. Se instaló la versión más reciente del SDK de Cloud, que incluye la herramienta de línea de comandos de gcloud.

  2. La facturación está habilitada para tu proyecto.

  3. Docker está instalado. La versión 18.03 o posterior es obligatoria si deseas usar el auxiliar de credenciales de gcloud para la autenticación (recomendado).

    Si usas un sistema operativo basado en Linux, como Ubuntu o Debian, agrega tu nombre de usuario al grupo docker para que puedas ejecutar Docker sin usar sudo:

    sudo usermod -a -G docker ${USER}

    Sal de tu cuenta y vuelve a acceder para que se apliquen los cambios de membresía de grupo. Si utilizas una máquina virtual, es posible que tengas que reiniciarla para que se apliquen los cambios de membresía.

  4. Tienes permisos para enviar y extraer desde el registro.

  5. Se configuró Docker para el uso de gcloud como auxiliar de credenciales o se usa otro método de autenticación. Para usar gcloud como auxiliar de credenciales, ejecuta el siguiente comando:

    gcloud auth configure-docker
    
  6. Docker requiere que los auxiliares de credenciales estén en el sistema PATH. Asegúrate de que el auxiliar de credenciales que elegiste, gcloud o docker-credential-gcr, se encuentre en el sistema PATH.

Envía una imagen a un registro

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

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 depósito de almacenamiento en la multirregión especificada. Este depósito es el almacenamiento subyacente del registro. Dentro de un proyecto, todos los registros con el mismo nombre de host comparten un depósito 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]
    

    donde [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.
  • [PROJECT-ID] 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 la consola, 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