En esta página se explica cómo gestionar imágenes de contenedor en un repositorio de Docker. La gestión de imágenes incluye enumerar las imágenes de un repositorio, añadir etiquetas, eliminar etiquetas, copiar imágenes en un repositorio nuevo y eliminar imágenes.
Para obtener información sobre cómo insertar y extraer imágenes, consulta Insertar y extraer imágenes.
Antes de empezar
- Si el repositorio de destino no existe, crea uno.
- Verifica que tienes los permisos necesarios para el repositorio.
- (Opcional) Configura los valores predeterminados de los comandos de gcloud.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar imágenes, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el repositorio:
-
Ver imágenes, archivos en imágenes y etiquetas:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Etiquetar imágenes o editar etiquetas con Artifact Registry:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Eliminar imágenes o quitar etiquetas:
Administrador de repositorios de Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Imágenes de la ficha
Modos de repositorio: estándar y remoto
Puedes enumerar las imágenes con Google Cloud console o con la CLI de gcloud.
La lista de repositorios incluye repositorios de Artifact Registry y de Container Registry. Para trabajar con imágenes en un repositorio de Container Registry, consulta la documentación sobre gestión de imágenes de Container Registry.Consola
Para ver las imágenes de un repositorio, sigue estos pasos:
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 del proyecto, el repositorio y la ubicación predeterminados cuando los valores predeterminados estén configurados, haz lo siguiente:
gcloud artifacts docker images list
Para enumerar las imágenes de un repositorio en 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 etiquetas de una imagen específica, ejecuta el siguiente comando:
gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags
Sustituye los siguientes valores:
- LOCATION es la ubicación regional o multirregional del repositorio.
- PROJECT es el Google Cloud ID de tu proyecto. Si el ID de tu proyecto contiene dos puntos (
:
), consulta Proyectos con ámbito 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, la lista devuelta solo incluirá imágenes de contenedor de nivel superior.
Por ejemplo, supongamos que tienes 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:
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 información sobre el formato de los nombres de las imágenes, consulta Nombres de repositorios e imágenes.
Mostrar archivos
Modos de repositorio: estándar y remoto
Puedes enumerar los archivos de un repositorio, los archivos de todas las versiones de una imagen de contenedor especificada o los archivos de una versión concreta de una imagen.
En todos los comandos siguientes, puedes definir un número máximo de archivos que se devuelvan
añadiendo 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 específicos, ejecuta el siguiente 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, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para enumerar los archivos de una versión específica de una imagen de 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
Sustituye los siguientes valores:
LOCATION
: la ubicación regional o multirregional del repositorio.PROJECT
: tu Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:
), consulta Proyectos con ámbito de dominio.REPOSITORY
: el nombre del repositorio en el que se almacena la imagen.PACKAGE
: el nombre de la imagen.VERSION
: el digest de la imagen, una cadena que empieza porsha256:
.TAG
: la etiqueta asociada a la imagen del contenedor.
Ejemplos
Tenga en cuenta la siguiente información de la imagen:
- Proyecto:
my-project
- Repositorio:
my-repo
- Ubicación del repositorio:
us-west1
- Imagen:
my-app
El siguiente comando muestra todos los archivos del repositorio my-repo
en la ubicación us-west1
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
Etiquetar imágenes
Puedes etiquetar imágenes que ya estén en un repositorio de Artifact Registry o hacerlo antes de enviarlas a un repositorio.
Etiquetar imágenes en un repositorio
Modos de repositorio: estándar
Puedes añadir una etiqueta a una imagen de un repositorio de Artifact Registry mediante laGoogle Cloud console o la línea de comandos. En un repositorio, las etiquetas son únicas para una versión de una imagen. Por lo tanto, si tiene varias versiones de una imagen, cada etiqueta solo se aplica a una de las versiones. Si etiquetas una imagen con una etiqueta que ya se está usando, la etiqueta se moverá de la versión original a la versión recién etiquetada.
Consola
Para etiquetar una imagen en un repositorio, sigue estos pasos:
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en la imagen para ver las versiones de la imagen.
Selecciona la versión de imagen que quieras etiquetar.
En la fila de la versión seleccionada, haz clic en Más acciones (
) y, a continuación, en Editar etiquetas.
Escribe las nuevas etiquetas en el campo y haz clic en GUARDAR.
gcloud
Para etiquetar imágenes en un repositorio, especifique la versión de la imagen mediante el digest o la etiqueta de la imagen y, a continuación, especifique la etiqueta que quiera añadir. Ejecuta uno de los siguientes comandos:
gcloud artifacts docker tags add IMAGE-VERSION TAG
Dónde
IMAGE-VERSION
es el nombre completo de la versión de la imagen que se va a etiquetar. Puede usar el digest de la imagen o una etiqueta que ya tenga la versión de la imagen.TAG
es el nombre completo de la etiqueta que quieres añadir.
Por ejemplo, supongamos que tienes 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 que ya tienes:
iteration6-final
- Etiqueta que se va a añadir:
release-candidate
Para añadir 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 información sobre el formato del nombre de la imagen, incluidos los proyectos con ámbito de dominio, consulta Nombres de repositorios e imágenes.
Etiquetar imágenes locales
Para enviar cualquier imagen local a Artifact Registry, primero debes etiquetarla con el nombre del repositorio y, a continuación, enviar la imagen. Para obtener instrucciones, consulta Enviar y extraer.
Desetiquetar imágenes
Modos de repositorio: estándar
Puedes quitar una etiqueta de una imagen de Artifact Registry mediante laGoogle Cloud console o la línea de comandos.
Consola
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en la imagen para ver las versiones de la imagen.
Selecciona la versión de la imagen que quieras desetiquetar.
En la fila de la versión seleccionada, haz clic en Más acciones (
) y, a continuación, en Editar etiquetas.
Elimina la etiqueta y haz clic en GUARDAR.
gcloud
Para eliminar una etiqueta y quitarla de la imagen, ejecuta el siguiente comando:
gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
Haz los cambios siguientes:
-
LOCATION
es la ubicación regional o multirregional del repositorio. PROJECT
es el Google Cloud ID de tu proyecto. Si tu ID de proyecto contiene dos puntos (`:`), consulta Proyectos con ámbito 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 quieres eliminar.
Eliminando imágenes
Modos de repositorio: estándar y remoto
Puedes eliminar una imagen de contenedor completa o una versión específica de una imagen asociada a una etiqueta o a un digest.
- Una vez que eliminas una imagen, no puedes deshacer la acción.
- Si eliminas imágenes, no se eliminan inmediatamente las capas a las que hacen referencia. Las capas sin referencias se eliminan a diario.
- En el caso de los repositorios remotos, se elimina la copia en caché de la imagen. La imagen sigue estando disponible en la fuente original. Si el repositorio remoto recibe una nueva solicitud de la misma imagen, el repositorio la descargará y la almacenará en caché de nuevo.
Hay otras herramientas disponibles para ayudarte a gestionar las imágenes que no se usan. Por ejemplo, la herramienta gcr-cleaner busca y elimina imágenes antiguas en función de diferentes criterios. Eliminar las imágenes que no se usan puede ayudarte a reducir los costes de almacenamiento. La herramienta gcr-cleaner
no es un producto oficial de Google.
Para eliminar imágenes de la consola de Google Cloud o de gcloud CLI, sigue estos pasos:
Consola
Abre la página Repositorios en la consola de Google Cloud .
Haz clic en el nombre de la imagen para ver sus versiones.
Selecciona las versiones que quieras eliminar.
Haz clic en ELIMINAR.
En el cuadro de diálogo de confirmación, haz clic en ELIMINAR.
gcloud
Para eliminar 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 eliminar 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 Google Cloud ID de tu proyecto.
Si el ID de tu proyecto contiene dos puntos (
:
), consulta Proyectos con ámbito 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 quieres eliminar. Si hay varias etiquetas asociadas a la misma versión de la imagen, debes incluir
--delete-tags
para eliminar la versión de la imagen sin quitar las etiquetas primero. - IMAGE-DIGEST es el valor de hash sha256 de la versión que quieres eliminar. Si una etiqueta está asociada al digest de la imagen, debes incluir
--delete-tags
para eliminar la versión de la imagen sin quitar la etiqueta primero. --delete-tags
elimina todas las etiquetas aplicadas a la versión de la imagen. Esta marca te permite forzar la eliminación de una versión de una imagen cuando:- Ha especificado una etiqueta, pero hay otras etiquetas asociadas a la versión de la imagen.
- Has especificado un digest de imagen que tiene al menos una etiqueta.
Siguientes pasos
- Descarga archivos individuales almacenados en una imagen sin usar comandos de Docker. Esto puede ser útil para inspeccionar rápidamente los archivos de manifiesto.