Es importante hacer mantenimiento de nuestra plataforma de contenedores Docker o cualquiera sea, para no caer en problemas de performance o incluso ocupar recursos innecesarios sobre todo si se usa alguna nube. Así que vamos a ver los comandos necesarios para hacer limpieza.
1- Eliminar imágenes contenedores docker
Vamos a revisar las imágenes descargadas:
docker images -a
Eliminamos imágenes por nombre o por su ID:
docker rmi NOMBRE_O_ID_DE_IMAGEN
Podemos encontrar imágenes pendientes, que podemos revisar con:
docker images -f dangling=true
Purgando imágenes que no están en uso
docker images purge
Ejemplo práctico para eliminar por un patrón concreto como httpd:
docker images -a | grep "httpd" | awk '{print $3}' | xargs docker rmi
Para eliminar todas las imágenes, cuidado esto elimina todo
docker rmi $(docker images -a -q)
2- Eliminar contenedores Docker
Para eliminar contenedores es simple
docker rm NOMBRE-o-ID
Para que se ejecute, inicie y cuando terminemos de usarlo y se elimine podemos usar –rm al generarlo:
docker run --rm debian
Eliminar todos los contenedores que están en modo exited:
docker ps -a -f status=exited
docker rm $(docker ps -a -f status=exited -q)
Eliminar contenedores por patrón:
docker ps -a | grep "debian" | awk '{print $3}' | xargs docker rmi
Eliminar todos los contenedores. Deberemos pararlos antes:
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
3-Eliminar volumen de contenedores Docker
Para eliminar volúmenes, haríamos lo mismo que con los contenedores:
docker volume rm VOLUME-NOMBRE
Eliminar volúmenes en estado pendiente:
docker volume prune
Eliminar un volumen y su contenedor asociado:
docker rm -v ID-NOMBRE-CONTENEDOR
4- Para hacer una limpieza completa del sistema, de elementos que no se utilizan, da igual lo que sean, contenedores, imágenes, volúmenes o redes (incluso lo que esté en estado pendiente)
docker system prune docker system prune -a