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
- Si el repositorio de destino no existe, crea un repositorio nuevo.
- Verifica que tengas los permisos necesarios para el repositorio.
- (Opcional) Configura valores predeterminados para los comandos de gcloud.
Roles obligatorios
Para obtener los permisos que necesitas para administrar imágenes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:
-
Ver imágenes, archivos en imágenes y etiquetas:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Etiqueta imágenes o edita etiquetas con Artifact Registry:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Borrar imágenes o quitar etiquetas:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Cómo mostrar imágenes en una ficha
Modos de repositorio: estándar, remoto
Puedes enumerar las imágenes con Google Cloud console o gcloud CLI.
En la lista de repositorios, se incluyen los repositorios de Artifact Registry y de Container Registry. Consulta la documentación de Container Registry para la administración de imágenes con el fin de trabajar con imágenes en un repositorio de Container Registry.Console
Para ver imágenes en un repositorio, haz lo siguiente:
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en el repositorio con la imagen de contenedor.
Haz clic en una imagen para ver sus versiones.
gcloud
Para enumerar todas las imágenes en el proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:
gcloud artifacts docker images list
Para enumerar las imágenes de un repositorio en una ubicación específica, ejecuta el siguiente 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 la ubicación regional o multirregional del repositorio.
- PROJECT es el ID de 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 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 el siguiente:
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.
Cómo enumerar archivos
Modos de repositorio: estándar, remoto
Puedes enumerar archivos en un repositorio, archivos en todas las versiones de una imagen de contenedor especificada 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 si agregas la marca --limit
al comando.
Para enumerar todos los archivos del proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:
gcloud artifacts files list
Para enumerar los archivos de un proyecto, un repositorio y una ubicación especificados, ejecuta el siguiente comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Para obtener una lista de los archivos de todas las versiones de una imagen de contenedor específica, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para obtener una lista de archivos de una versión específica de la imagen del contenedor, sigue estos pasos:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Reemplaza los siguientes valores:
LOCATION
: Es la ubicación regional o multirregional 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 almacena la imagen.PACKAGE
: Es el nombre de la imagen.VERSION
: El resumen de la imagen, una cadena que comienza consha256:
.TAG
: Es la etiqueta asociada con la imagen del contenedor.
Ejemplos
Considera 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
en la
posición us-west1
dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
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 etiquetarlas antes de enviarlas 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 conGoogle Cloud console 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
Para etiquetar una imagen en un repositorio, haz lo siguiente:
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en la imagen para ver las versiones de esta.
Selecciona la versión de la imagen que deseas etiquetar.
En la fila de la versión seleccionada, haz clic en Más acciones () y, luego, en Editar etiquetas.
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 con el resumen o la etiqueta de la imagen y, luego, especifica la etiqueta que deseas agregar. Ejecuta uno de 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 deseas 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, incluidos los proyectos centrados en el 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 conGoogle Cloud console o la línea de comandos.
Console
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en la imagen para ver las versiones de esta.
Selecciona la versión de la imagen de la que deseas quitar una etiqueta.
En la fila de la versión seleccionada, haz clic en Más acciones () y, luego, en Editar etiquetas.
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
Reemplaza lo siguiente:
-
LOCATION
es la ubicación regional o multirregional del repositorio. PROJECT
es el ID de 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 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 borras una imagen, no puedes deshacer la acción.
- Si borras imágenes, no se borrarán de inmediato las capas a las que hacen referencia. Las capas sin referencias se borran a diario.
- En el caso de los repositorios remotos, se quita la copia almacenada en caché de la imagen. La imagen seguirá disponible desde la fuente upstream. Si el repositorio remoto recibe una solicitud nueva para la misma imagen, el repositorio la volverá a descargar y almacenar en caché.
Hay otras herramientas disponibles que te ayudarán a administrar las imágenes que no se utilizan. Por ejemplo, la herramienta gcr-cleaner busca y borra imágenes antiguas en función de 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 de la consola de Google Cloud o gcloud CLI, sigue estos pasos:
Console
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en el nombre de la imagen para ver las versiones correspondientes.
Selecciona las versiones que quieres borrar.
Haz clic en BORRAR.
En el 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 la ubicación regional o multirregional del repositorio.
- PROJECT es el ID de 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 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?
- Descarga archivos individuales almacenados en una imagen sin usar comandos de Docker. Esto puede ser útil para inspeccionar rápidamente los archivos de manifiesto.