Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Envía y extrae imágenes

En esta página, se describe cómo enviar y extraer imágenes de contenedores.

Para obtener instrucciones sobre cómo enumerar, etiquetar y borrar imágenes, consulta Administra imágenes.

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo.
  2. Debes tener al menos el acceso de escritor de Artifact Registry al repositorio.
  3. Instala Docker, si aún no se encuentra instalado.
  4. Configura la autenticación para Docker.

Envía una imagen

Para enviar una imagen local a un repositorio de Artifact Registry, debes etiquetarla con el nombre del repositorio y, luego, enviarla.

Si subes imágenes grandes, se aplican los siguientes límites:

Hora de carga
Si te autenticas con Artifact Registry mediante un token de acceso, el token caducará después de 60 minutos. Si esperas que el tiempo de carga supere los 60 minutos, usa un método de autenticación diferente.
Tamaño de la imagen
El tamaño máximo del artefacto es de 5 TB.
Artifact Registry no es compatible con cargas fragmentadas de Docker. Algunas herramientas admiten la carga de imágenes grandes con cargas fragmentadas o una sola carga monolítica. Debes usar cargas monolíticas para enviar imágenes a Artifact Registry.

Etiqueta la imagen local

  1. Determina el nombre de la imagen. El formato de un nombre de imagen completo es el siguiente:

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

    Donde:

    • LOCATION es la ubicación regional o multirregional del repositorio en la que se almacena la imagen.

    • PROJECT 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.

    • REPOSITORY es el nombre del repositorio en el que se almacena la imagen.

    • IMAGE es el nombre de la imagen. Puede ser diferente del nombre local de la imagen.

    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 imagen local: my-image
    • Nombre de la imagen de destino: test-image

    El nombre de la imagen para este ejemplo es el siguiente:

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

    Para obtener detalles sobre el formato del nombre de la imagen, incluido el manejo de proyectos con alcance de dominio, consulta Nombres de imágenes y repositorios.

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

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

    En el ejemplo anterior, SOURCE-IMAGE es el nombre de la imagen local o el ID de la imagen.

    Mediante este comando, se asigna a la imagen el nombre del repositorio y se aplica la etiqueta latest.

    Para la imagen de ejemplo del paso anterior, usarías el siguiente comando si la imagen local my-image se encontrara en el directorio actual:

    docker tag my-image us-docker.pkg.dev/my-project/my-repo/test-image
    

    Si deseas aplicar una etiqueta específica, usa el siguiente comando:

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

    Para usar la etiqueta staging con la imagen de ejemplo, debes agregar :staging al comando:

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

Envía la imagen con etiqueta a Artifact Registry

Envía la imagen con etiquetas mediante el siguiente comando:

docker push LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/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 LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

Cuando envías una imagen, se almacena en el repositorio especificado.

Después de enviar tu imagen, puedes hacer lo siguiente:

  • Ve a Cloud Console para ver la imagen.

  • Ejecuta el comando gcloud para ver el resumen generado automáticamente y las etiquetas de la imagen:

    gcloud artifacts docker images list \
    LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE [--include-tags]
    

    En el siguiente resultado de ejemplo, se muestran resúmenes de imágenes truncados, pero el comando siempre muestra el resumen de la imagen completo.

     IMAGE                                                 DIGEST         CREATE_TIME          UPDATE_TIME
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:85f...  2019-04-10T15:08:45  2019-04-10T15:08:45
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:238...  2019-04-10T17:23:53  2019-04-10T17:23:53
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:85f...  2019-04-10T15:08:46  2019-04-10T15:08:46
      ```
    

Extrae imágenes

Para extraer imágenes de un repositorio, usa el siguiente comando:

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

o

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

Donde:

  • LOCATION es la ubicación regional o multirregional del repositorio en la que se almacena la imagen.

  • PROJECT 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.

  • 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. Cada versión de una imagen tiene un resumen de imagen único. En Google Cloud Console, haz clic en la imagen específica para ver sus metadatos. El resumen se muestra como el resumen de la imagen.

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-image
  • Etiqueta: staging

El comando para extraer la imagen es el siguiente:

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

¿Qué sigue?