Administrar imágenes

En esta página, se explica cómo administrar imágenes de contenedor en un repositorio de Docker. La administración de imágenes incluye enumerarlas en un repositorio, agregar etiquetas, borrar etiquetas, copiar imágenes en un repositorio nuevo y borrar imágenes.

Para obtener información sobre cómo enviar y extraer imágenes, consulta Envía y extrae imágenes.

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo.
  2. Verifica que tengas los permisos necesarios para el repositorio.
  3. (Opcional) Configura valores predeterminados para los comandos de gcloud.

Roles obligatorios

A fin de obtener los permisos que necesitas para administrar las imágenes, solicita a tu administrador que te otorgue el los siguientes roles de IAM en el repositorio:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Muestra una lista de imágenes

Modos de repositorio: estándar, remoto

Puedes generar una lista de las imágenes con la consola de Google Cloud o gcloud CLI.

La lista de repositorios incluye Artifact Registry y los repositorios de Container Registry. Para trabajar con imágenes en un Container Registry consulta la documentación de Container Registry para administrar imágenes.

Console

Sigue estos pasos para ver imágenes en un repositorio:

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en el repositorio con la imagen de contenedor.

  3. Haz clic en una imagen para ver sus versiones.

gcloud

Para enumerar todas las imágenes en el proyecto, el repositorio y ubicación cuando los valores predeterminados están configurados:

gcloud artifacts docker images list

Para mostrar una lista de las imágenes de un repositorio de una ubicación específica, ejecuta el comando :

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Para enumerar todos los resúmenes y las etiquetas de una imagen específica, ejecuta el siguiente comando:

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

Reemplaza los siguientes valores:

  • LOCATION es el regional o multirregional location del repositorio.
  • PROJECT es tu cuenta de Google Cloud ID del proyecto: 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.
  • --include-tags muestra todas las versiones de las imágenes, incluidos los resúmenes y las etiquetas. Si se omite esta marca, en la lista que se muestra, solo se incluyen imágenes de contenedores de nivel superior.

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

  • Ubicación del repositorio: us-west1
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: my-image

El nombre completo del repositorio es el siguiente:

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

El nombre completo de la imagen es:

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

Para obtener detalles sobre el formato del nombre de la imagen, consulta Nombres de imágenes y repositorios.

Enumera los archivos

Modos de repositorio: estándar, remoto

Puedes enumerar archivos de un repositorio, archivos de todas las versiones de un una imagen de contenedor o archivos en una versión específica de una imagen.

Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se mostrarán Para ello, agrega la marca --limit al comando.

Para enumerar todos los archivos en el proyecto, el repositorio y ubicación cuando los valores predeterminados están configurados:

gcloud artifacts files list

Para mostrar una lista de los archivos en un proyecto, un repositorio y una ubicación especificados, ejecuta el comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Para enumerar los archivos de todas las versiones de una imagen de contenedor específica, ejecuta el siguiente comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Para enumerar los archivos de una versión específica de la imagen del contenedor, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Para enumerar los archivos de una etiqueta específica, sigue estos pasos:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Reemplaza los siguientes valores:

  • LOCATION: el regional o multirregional location del repositorio.
  • PROJECT: El ID del proyecto 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 encuentra la imagen. cuando se almacena.
  • PACKAGE: Es el nombre de la imagen.
  • VERSION: Es el resumen de la imagen, una cadena que comienza con sha256:.
  • TAG: Es la etiqueta asociada con la imagen de contenedor.

Ejemplos

Ten en cuenta la siguiente información de la imagen:

  • Proyecto: my-project
  • Repositorio: my-repo
  • Ubicación del repositorio: us-west1
  • Imagen: my-app

Con el siguiente comando, se enumeran todos los archivos del repositorio my-repo del Ubicación us-west1 dentro del proyecto predeterminado:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Con el siguiente comando, se enumeran los archivos de la versión de la imagen con la resumen sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
Con el siguiente comando, se enumeran los archivos de la versión de la imagen con la etiqueta 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

Etiqueta imágenes

Puedes etiquetar imágenes existentes en un repositorio de Artifact Registry o puedes etiquetarlos antes de enviarlos a un repositorio.

Etiqueta imágenes en un repositorio

Modos de repositorio: Estándar

Puedes agregar una etiqueta a una imagen en un repositorio de Artifact Registry con el consola de Google Cloud o la línea de comandos. En un repositorio, las etiquetas son exclusivas de una versión de una imagen. Por lo tanto, si tienes varias versiones de una imagen, cada etiqueta se aplica solo a una de las versiones. Si aplicas a una imagen una etiqueta que ya está en uso, moverás la etiqueta de la versión original a la nueva.

Console

Sigue estos pasos para etiquetar una imagen en un repositorio:

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en la imagen para ver las versiones de esta.

  3. Selecciona la versión de la imagen que quieres etiquetar.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Escribe las etiquetas nuevas en el campo y haz clic en GUARDAR.

gcloud

Para etiquetar imágenes en un repositorio, especifica la versión de la imagen usando el resumen de la imagen o la etiqueta y, a continuación, especifica la etiqueta que deseas agregar. Ejecuta uno de los los siguientes comandos:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Donde

  • IMAGE-VERSION es el nombre completo de la versión de la imagen que deseas etiquetar mediante el resumen de imágenes o una etiqueta existente en la versión de la imagen.
  • TAG es el nombre completo de la etiqueta que que quieres agregar.

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

  • Ubicación del repositorio: us-west1
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: my-image
  • Etiqueta existente: iteration6-final
  • Etiqueta que se desea agregar: release-candidate

Para agregar la etiqueta release-candidate a la versión de la imagen con la etiqueta iteration6-final, ejecuta el siguiente comando:

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

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.

Etiqueta imágenes locales

Antes de enviar cualquier imagen local a Artifact Registry, primero debes etiquetarla con el nombre del repositorio. Para obtener instrucciones, consulta Envío y extracción.

Quita las etiquetas de las imágenes

Modos de repositorio: Estándar

Puedes quitar una etiqueta de una imagen en Artifact Registry con el consola de Google Cloud o la línea de comandos.

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en la imagen para ver las versiones de esta.

  3. Selecciona la versión de la imagen de la que deseas quitar una etiqueta.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Borra la etiqueta y haz clic en GUARDAR.

gcloud

Para borrar una etiqueta y quitarla de la imagen, ejecuta el siguiente comando:

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Dónde

  • LOCATION es el regional o multirregional location del repositorio.
  • PROJECT es tu cuenta de Google Cloud ID del proyecto: 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 que deseas borrar.

Borra imágenes

Modos de repositorio: estándar, remoto

Puedes borrar una imagen de contenedor completa o borrar una versión específica de una imagen asociada con una etiqueta o un resumen.

  • Una vez que borres una imagen, no podrás deshacer la acción.
  • Si borras imágenes, no se borrarán de inmediato las capas a las que se hace referencia. Sin referencia se borran todos los días.
  • En el caso de los repositorios remotos, se quita la copia almacenada en caché de la imagen. La imagen permanece disponible en la fuente upstream. Si el control remoto repositorio recibe una solicitud nueva para la misma imagen, descargarlo y almacenarlo en caché nuevamente.

Hay otras herramientas disponibles que te ayudarán a administrar las imágenes que no se utilizan. Por ejemplo: gcr-cleaner la herramienta encuentra y borra imágenes antiguas según diferentes criterios. Quitar imágenes que no se usan puede ayudarte a reducir los costos de almacenamiento. La herramienta gcr-cleaner no es un producto oficial de Google.

Para borrar una imagen desde la consola de Google Cloud o gcloud CLI, haz lo siguiente:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en el nombre de la imagen para ver la versión correspondiente.

  3. Selecciona las versiones que deseas borrar.

  4. Haz clic en BORRAR.

  5. En el cuadro de diálogo de confirmación, haz clic en BORRAR.

gcloud

Para borrar una imagen y todas sus etiquetas, ejecuta el siguiente comando:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Para borrar una versión específica de una imagen, usa uno de los siguientes comandos.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

o

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Dónde

  • LOCATION es el regional o multirregional location del repositorio.
  • PROJECT es tu cuenta de Google Cloud ID del proyecto: 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 que deseas borrar. Si varias etiquetas están asociadas a la misma versión de una imagen, debes incluir --delete-tags para borrar la versión de la imagen sin quitar primero las etiquetas.
  • IMAGE-DIGEST es el valor de hash SHA256 de la versión que deseas borrar. Si una etiqueta está asociada con el resumen de la imagen, debes incluir --delete-tags para borrar la versión de la imagen sin quitar primero la etiqueta.
  • --delete-tags quita todas las etiquetas aplicadas a la versión de la imagen. Esta marca te permite forzar la eliminación de una versión de imagen en los siguientes casos:
    • Especificaste una etiqueta, pero hay otras etiquetas asociadas con la versión de la imagen.
    • Especificaste un resumen de la imagen que tiene al menos una etiqueta.

¿Qué sigue?