Guía completa para eliminar imágenes de Docker

¿Cómo estais? soy Fran. Os traigo un nuevo post sobre el sistema operativo mas molón. Un placer linuxeros.

Si continúa creando imágenes de la ventana acoplable, pronto comenzará a quedarse sin espacio. Eliminar imágenes de la ventana acoplable antiguas y no utilizadas liberará mucho espacio en el disco para usted.

En este artículo, discutiré diferentes escenarios para eliminar imágenes de la ventana acoplable de su sistema.

Formas de eliminar imágenes de la ventana acoplable

Primero verifique las imágenes disponibles en su sistema con este comando:

docker images

La salida mostrará todas las imágenes de la ventana acoplable y su ID de imagen. Necesita este nombre de imagen (debajo de la columna de almacenamiento) o ID de imagen para eliminar una imagen de la ventana acoplable de su sistema.

abhishek@linuxhandbook:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              67e34c1c9477        2 weeks ago         114MB
ubuntu              latest              775349758637        6 weeks ago         64.2MB

Con el ID de imagen, puede eliminar la imagen de la ventana acoplable de la siguiente manera:

docker rmi image_name_or_id

También puede usar este comando porque ambos son iguales:

docker image rm image_id

Así es como podría verse el resultado:

abhishek@linuxhandbook:~$ docker rmi 67e34c1c9477
Untagged: debian:latest
Untagged: debian@sha256:79f0b1682af1a6a29ff63182c8103027f4de98b22d8fb50040e9c4bb13e3de78
Deleted: sha256:67e34c1c9477023c0ce84c20ae5af961a6509f9952c2ebbf834c5ea0a286f2b8
Deleted: sha256:f2b4f0674ba3e6119088fe8a98c7921ed850c48d4d76e8caecd7f3d57721b4cb

Si usa el ID de imagen, eliminará todas las imágenes asociadas con ese ID.

Eliminar la imagen de la ventana acoplable asociada con el contenedor

La vida sería mucho más sencilla si pudiera eliminar esas imágenes de una ventana acoplable. Pero esto no sucede a menudo.

Si tiene contenedores asociados con la imagen de la ventana acoplable, encontrará algunos errores cuando intente eliminar la imagen.

abhishek@linuxhandbook:~$ docker rmi 775349758637
Error response from daemon: conflict: unable to delete 775349758637 (cannot be forced) - image is being used by running container 13dc0f4226dc

Primero debe detener el contenedor:

abhishek@linuxhandbook:~$ docker stop 13dc0f4226dc
13dc0f4226dc

El problema es que incluso si detiene el contenedor, seguirá quejándose si intenta eliminar la imagen:

abhishek@linuxhandbook:~$ docker rmi 67e34c1c9477
Error response from daemon: conflict: unable to delete 67e34c1c9477 (must be forced) - image is being used by stopped container 5ced86b1fcee

Aquí tienes dos opciones:

    Forzar la eliminación de la imagen de la ventana acoplable (el contenedor conectado permanecerá en el sistema) Retire el contenedor conectado y luego elimine la imagen de la ventana acoplable

Para eliminar una imagen de la ventana acoplable forzada, puede usar la opción -f:

docker rmi -f image_id

Para eliminar un contenedor y luego eliminar la imagen, puede usar algo como esto:

docker rm container_id
docker rmi image_id

Eliminar la imagen de la ventana acoplable asociada con varios contenedores

La vida aún sería un poco más simple si la imagen de una ventana acoplable estuviera conectada a un solo contenedor. Pero la imagen puede tener varios contenedores adjuntos, y eliminar ese tipo de imagen de la ventana acoplable se convierte en una molestia.

Verá un error como este:

abhishek@itsfoss:~$ docker rmi 775349758637
Error response from daemon: conflict: unable to delete 775349758637 (must be forced) - image is referenced in multiple repositories

Primero, debe encontrar todos los contenedores asociados con el nombre de la imagen (no el ID).

docker ps -a -q --filter ancestor=docker_image_name

    Esta opción muestra todos los contenedores en ejecución y detenidos. La opción -q muestra solo el ID del contenedor.

Y luego tienes que detenerlos a todos. Puede utilizar los ID de contenedor de uno en uno, pero esto llevará demasiado tiempo. Puede usar la magia de pipe y xargs para detener todos los contenedores asociados con una imagen:

docker ps -a -q --filter ancestor=ubuntu | xargs docker stop

Y luego puede quitar los contenedores suspendidos o forzarlos a quitar la imagen (como vio en la sección anterior).

Si desea eliminar todos los contenedores relacionados con imágenes, simplemente ejecute este comando:

docker ps -a -q --filter ancestor=ubuntu | xargs docker rm

Y ahora puede eliminar la imagen de la ventana acoplable con el comando que se mostró anteriormente en este tutorial.

Eliminar varias imágenes de Docker a la vez

También puede eliminar varias imágenes de la ventana acoplable con un solo comando. Este es el mismo que el comando anterior. Todo lo que tiene que hacer es especificar los ID de las imágenes o los nombres de las imágenes.

docker rmi image_id_1 image_id_2 image_id_3

Por supuesto, deberá detener todos los contenedores de trabajo asociados con las imágenes.

Elimina todas las imágenes de la ventana acoplable colgadas y no utilizadas a la vez

Antes de que veas esto, déjame explicarte qué son las imágenes colgadas y sin usar:

Cualquier imagen de una ventana acoplable que tenga algún tipo de contenedores adjuntos (suspendidos o ejecutados) es una imagen utilizada. Si la imagen de la ventana acoplable no tiene contenedores conectados, se convierte en una imagen de la ventana acoplable sin usar.

A imagen colgante de una ventana acoplable «Significa que ha creado la nueva compilación de imágenes, pero no se le ha dado un nombre nuevo. De esta manera, las imágenes antiguas se han convertido en una imagen colgante. Estas imágenes antiguas son las que están marcadas y mostradas en su nombre cuando ejecuta el comando ‘docker images’. «

Si desea eliminar las imágenes colgadas, puede utilizar opción para ciruelas pasas:

docker image prune

Si desea eliminar tanto las imágenes colgadas como las no utilizadas, puede usar prune con la opción -a:

docker image prune -a

Debería ver el espacio que se libera al final de la salida:

abhishek@linuxhandbook:~$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: ubuntu:latest
untagged: ubuntu@sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
untagged: debian:latest
untagged: debian@sha256:79f0b1682af1a6a29ff63182c8103027f4de98b22d8fb50040e9c4bb13e3de78
deleted: sha256:67e34c1c9477023c0ce84c20ae5af961a6509f9952c2ebbf834c5ea0a286f2b8
deleted: sha256:f2b4f0674ba3e6119088fe8a98c7921ed850c48d4d76e8caecd7f3d57721b4cb
untagged: fedora:latest
untagged: fedora@sha256:d4f7df6b691d61af6cee7328f82f1d8afdef63bc38f58516858ae3045083924a
deleted: sha256:f0858ad3febdf45bb2e5501cb459affffacef081f79eaa436085c3b6d9bd46ca
deleted: sha256:2ae3cee18c8ef9e0d448649747dab81c4f1ca2714a8c4550eff49574cab262c9

Total reclaimed space: 308.3MB

Puede ser un poco inteligente con el comando podar y eliminar solo las imágenes antiguas que no se utilizan y que cuelgan. Entonces, si desea eliminar los que tienen más de 24 horas, utilícelo de la siguiente manera:

docker image prune -a --filter "until=24h"

Elimina todas las imágenes de la ventana acoplable de tu sistema

Es posible que se encuentre en un entorno de prueba y desee comenzar de nuevo eliminando todas las imágenes de la ventana acoplable.

Para eliminar todas las imágenes de la ventana acoplable, primero debe detener todos los contenedores en funcionamiento.

docker ps -a -q | xargs docker rm

Ahora puede eliminar todas las imágenes como esta:

docker images -a -q | xargs docker rmi -f

Eso es todo. Creo que este es suficiente material de referencia para eliminar las imágenes de la ventana acoplable y ahora necesita comprender mejor este tema. También puede revisar el tutorial para eliminar contenedores de Docker.

Si tiene preguntas o sugerencias, deje un comentario a continuación.

El Blog lo escribimos para ayudar y servir de ayuda a la comunidad Linux. Esperamos que os guste.

Leave a Reply