Eliminar imágenes de Docker antiguas y no utilizadas

Isaac Tony 20 junio 2023
  1. Eliminar imágenes de Docker antiguas y no utilizadas
  2. Eliminar una sola imagen de Docker
  3. Eliminar imágenes colgantes de Docker
Eliminar imágenes de Docker antiguas y no utilizadas

Docker facilita a los desarrolladores la creación, prueba e implementación de aplicaciones sin preocuparse por las dependencias al envolverlas en unidades estandarizadas llamadas contenedores. En el pasado reciente, hemos visto una amplia adopción de Docker debido a su eficiencia, entre otros beneficios.

Las imágenes de Docker son bloques de construcción fundamentales de los contenedores de Docker y generalmente consisten en código, herramientas del sistema, bibliotecas y otras dependencias que nuestra aplicación necesitaría para ejecutarse.

Una forma común de crear imágenes con Docker es basar las imágenes en imágenes base extraídas del registro de Docker.

Eliminar imágenes de Docker antiguas y no utilizadas

Es fácil perder el rastro de las imágenes, los volúmenes y los contenedores creados con el tiempo. Docker recomienda que eliminemos las imágenes colgantes o no utilizadas y los contenedores que pueden consumir el “grupo de almacenamiento” de Docker sin una buena razón.

Las imágenes colgantes de Docker consisten principalmente en imágenes antiguas sin nombre en su sistema que olvidó por completo. Por otro lado, las imágenes no utilizadas son imágenes que no están siendo utilizadas por ningún contenedor de Docker.

Puede usar varios métodos para deshacerse de las imágenes no utilizadas en Docker. Sin embargo, antes de que podamos eliminar imágenes, deberíamos poder enumerarlas.

Puede enumerar todas las imágenes en su sistema usando el comando docker images.

Código:

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
new-image    latest    149077dac3e6   2 hours ago   932MB
<none>       <none>    22fa358b711d   2 weeks ago   929MB
myapp        latest    ee771b73a9ec   4 weeks ago   929MB
rabbitmq     latest    d4455d35bc06   8 weeks ago   221MB

Alternativamente, también puede enumerar imágenes en su sistema usando el comando docker image junto con el comando ls, como se muestra a continuación.

$ docker image ls
new-image    latest    149077dac3e6   2 hours ago   932MB
<none>       <none>    22fa358b711d   2 weeks ago   929MB
myapp        latest    ee771b73a9ec   4 weeks ago   929MB
rabbitmq     latest    d4455d35bc06   8 weeks ago   221MB

La lista de imágenes de Docker le da acceso a los nombres de Docker y a las ID de imágenes que puede usar para deshacerse de ellas.

Eliminar una sola imagen de Docker

Docker solo le permite eliminar imágenes que no son utilizadas por un contenedor en ejecución o detenido. Si intenta eliminar una imagen utilizada por cualquier contenedor, seguramente obtendrá un error.

El comando docker rmi elimina una sola imagen de Docker usando el nombre de la imagen o la identificación de la imagen.

$docker rmi 149077dac3e6
Error response from daemon: conflict: unable to delete 149077dac3e6 (must be forced) - image is being used by stopped container 841d1e8d8c25

Esto significa que no podemos eliminar esta imagen hasta que nos hayamos deshecho del contenedor Docker. Podemos eliminar este contenedor usando el comando docker rm <container_id>.

Una vez hecho esto, la imagen ahora está sin usar y se puede eliminar, como se muestra a continuación.

Código:

$ docker rmi 149077dac3e6

Producción :

Untagged: new-image:latest
Deleted: sha256:149077dac3e6f61c31ca98da741afd5d36147b69cacd945e3d53bd763ec7b420

También podemos eliminar varias imágenes no utilizadas simplemente enumerando los nombres o ID junto con el comando docker rmi.

$ docker rmi ubuntu rabbitmq

Producción :

Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Untagged: rabbitmq:latest
Untagged: rabbitmq@sha256:3d4c70ec5fc84c27efaeb56c50aafcac4fd8583b61398cc028e4876f84ae73d8
Deleted: sha256:d4455d35bc062a1c1847c2e83b8fae2f40a83075aad536f8bf82166c71431ad2
Deleted: sha256:84693641bf34ab0dee198b5b04c94c4c295626a4d29aacdeb8d17eaf200502ac
Deleted: sha256:8f76417ffbedd6e87b802960c31571aa49d14b058505475712e6ce8ee676718c
Deleted: sha256:a2fd31c374592ebd2e920f312aab1b27e592989a8af371c430fb8f915365bfb0
Deleted: sha256:b1d41dbdcd3cfe9eff61d43ecba57adf40bd26853fe2c7ab203f6f3bfbbe2761
Deleted: sha256:3560f714926f60121a89674e17510e4044f70be3229953fbbd82cb4eea6b1153
Deleted: sha256:4cd230fe05650d13ec67f7edde60fad03ab6cea3db52df798680294632ff62d3
Deleted: sha256:e535128bae717fe882e77c5283b08840efbf73e07eb65b1ef11df14ed4ea911f
Deleted: sha256:15d050b0b911cf148f48c6fb9ca3d654af4855504aee7791c7f7fce1c9fe1b21
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f688797f2f1e3af224c29593310578d2

Eliminar imágenes colgantes de Docker

Las imágenes colgantes son imágenes que no tienen relación con ninguna imagen etiquetada. Dado que estas imágenes no se utilizan, ya no tienen ningún propósito en su sistema y deben eliminarse.

Podemos enumerar las imágenes colgantes usando el indicador -f y configurar dangling=true junto con el comando docker images a continuación.

Código:

$ docker images -f dangling=true

Producción :

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    22fa358b711d   2 weeks ago   929MB

Usamos el comando docker prune para eliminar estas imágenes. Recibirá un mensaje que le indicará que este comando eliminará todas las imágenes colgantes.

Haga clic en y para indicar que sí, si está seguro de que desea deshacerse de estas imágenes.

$ docker image prune

Producción :

WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

Finalmente, también puede eliminar todas las imágenes de su sistema, incluidas las imágenes no utilizadas. Sin embargo, esta opción debe usarse con precaución y solo cuando esté seguro de que desea eliminar todas las imágenes de su sistema.

Para eliminar todas las imágenes, incluidas las imágenes no utilizadas en su sistema, primero deberá enumerarlas con el comando docker images y las etiquetas -q y -a. Ahora, anide este comando bajo el comando docker rmi a continuación.

Código:

$ docker rmi $(docker images -q -a)
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:bea6d19168bbfd6af8d77c2cc3c572114eb5d113e6f422573c93cb605a0e2ffb
Deleted: sha256:ff0fea8310f3957d9b1e6ba494f3e4b63cb348c76160c6c15578e65995ffaa87
Deleted: sha256:867d0767a47c392f80acb51572851923d6d3e55289828b0cd84a96ba342660c7
Deleted: sha256:22fa358b711d2ea3a1d72e59f062f6c7c38b414bdb253fb8d0def20222cadd93
Autor: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

Artículo relacionado - Docker Image