Últimamente me he metido en el mundo de Docker para mi Raspberry y se me ha abierto un mundo nuevo de posibilidades infinitas.

A continuación pongo un TIP sobre Docker y el mantenimiento (eliminación) de volúmenes / imágenes que ya no se utilizan.

ELIMINAR TODO LO NO USADO

En el caso de que lleguemos al punto de tener nuestro sistema hecho un desastre, hay un comando en Docker que sirve para limpiar imágenes, contenedores, volúmenes y dispositivos de red, que no estén asociadas a ningún contenedor.

   usuari@raspberry:~$ docker system prune

Si le añadimos el flag -a al final, borraremos también:

  • Todos los contenedores parados
  • Todas las imágenes que no se estén usando en ese momento.
     usuari@raspberry:~$ docker system prune -a
    

BORRAR IMÁGENES DE DOCKER

Borrar Imágenes

Para ver las imágenes que tenemos en el sistema, podemos usar el comando: docker images -a

Gracias al flag -a veremos todas las imágenes de Docker (incluidas las imágenes intermedias).

Una vez localizada la imagen que queremos borrar, utilizaremos su ID para borrarla:

   usuari@raspberry:~$ docker rmi

Borrar imágenes “colgadas” (dangling images)

Las imágenes colgadas son las capas de imágenes que no se están utilizando en ningún contenedor, tanto que estén en funcionamiento como que estén parados. Estas imágenes pueden ser borradas en la gran mayoría de las veces. Podemos ver estas imágenes con el comando:

   usuari@raspberry:~$ docker images -f dangling=true

Y para borrarlas:

   usuari@raspberry:~$ docker images purge

Borrar todas las imágenes

Si queremos borrar todas las imágenes, podemos ejecutar:

   usuari@raspberry:~$ docker rmi $(docker images -a -q)

BORRAR CONTENEDORES DOCKER

Borrar Contenedores

Primero debemos localizar los contenedores que queremos borrar, para ello ejecutaremos el comando:

   usuari@raspberry:~$ docker ps -a

Y para borrarlos:

   usuari@raspberry:~$ docker rm

Si no quieres que un contenedor se quede ahí una vez parado, puedes lanzar el proceso con el flag -rm:

   usuari@raspberry:~$ docker run -rm

Borrar contenedores mediante filtros

Podemos usar filtros para seleccionar contenedores, por ejemplo:

   usuari@raspberry:~$ docker ps -a -s status=exited -f status=created

Y combinándolos con los comandos anteriores, sirve para borrarlos:

   usuari@raspberry:~$ docker rm $(docker ps -a -f status=exited -f status=created -q)

Parar y borrar todos los contenedores Docker

También podemos parar y borrar todos los contenedores con un solo comando:

   usuari@raspberry:~$ docker rm $(docker ps -a -q)

BORRANDO VOLÚMENES DE DOCKER

Borrar volúmenes

Para ver los volúmenes que tenemos en el sistema, podemos usar el comando:

   usuari@raspberry:~$ docker volume ls

Cuando localizamos el volumen, lo podemos borrar con:

   usuari@raspberry:~$ docker volume rm

Borrar volúmenes colgados (dangling volume)

Los volumenes colgados son aquellos que no estan conectados a ningun contenedor. Ten en cuenta que es posible que haya volumenes en ese estado que no tengas que ser borrados. Para verlos utilizaremos:

   usuari@raspberry:~$ docker volume ls -f dangling=true

Localizaremos los que queremos borrar y lo haremos con el mismo comando del punto anterior:

   usuari@raspberry:~$ docker volume rm

Si queremos borrar todos los dangling volumes, ejecutaremos:

   usuari@raspberry:~$ docker volume prune

Referencia