Borrar contenedor en Docker: aprende a liberar espacio
Los contenedores ocupan mucho espacio de almacenamiento y recursos en el sistema host. Si eliminas contenedores que ya no utilizas, podrás liberar espacio y mejorar el rendimiento del sistema.
¿Cuándo debes borrar contenedores de Docker?
Los Docker Containers son unidades aisladas ejecutables que contienen aplicaciones y sus dependencias. Para garantizar que el entorno Docker sea eficaz, seguro y esté organizado, es necesario borrar contenedores en determinadas situaciones.
En todo caso, debes borrar los contenedores después de utilizarlos. Una vez que se complete una tarea o un proceso de un contenedor, se recomienda eliminarlo del entorno. Así se evita que los contenedores inactivos ocupen recursos y espacio de forma innecesaria.
También es aconsejable eliminar los contenedores que ya no se utilicen o no se hayan actualizado durante mucho tiempo. Esta acción es especialmente importante para minimizar riesgos de seguridad, ya que los contenedores más antiguos pueden tener versiones de software vulnerables u obsoletas.
Si sospechas que un contenedor no es seguro, debes borrarlo de inmediato. Lo mismo debes hacer con los contenedores que no pueden iniciarse debido a conflictos u otros problemas.
Borrar uno o varios contenedores
Cuando hay contenedores innecesarios o inactivos en el host, uno de los procedimientos habituales es eliminar uno o más contenedores.
Paso 1. Seleccionar los nombres o ID de los contenedores
En primer lugar, tienes que saber qué nombres o ID de contenedores borrar. Para obtener una lista de todos los contenedores detenidos y en ejecución, puedes utilizar el siguiente comando:
docker ps -a
bashPaso 2. Borrar contenedores
Solo debes introducir el comando docker rm seguido de los ID o nombres de los contenedores separados por un espacio:
docker rm container_id_or_name1 container_id_or_name2
bashEliminar un contenedor tras su ejecución
Para eliminar automáticamente un contenedor de Docker, añade el indicador --rm
al ejecutar el contenedor con el comando docker run
. Gracias a este indicador, el contenedor se borra automáticamente una vez se termina de utilizar.
docker run --rm image_name
bashBorrar todos los contenedores que han terminado su ejecución
También es posible eliminar a la vez todos los contenedores que han terminado su ejecución filtrándolos por su estado y utilizando el comando rm
.
Paso 1. Listar contenedores terminados
Puedes filtrar la lista de contenedores mediante la opción -f status=exited
para mostrar solo los contenedores terminados.
docker ps -a -f status=exited
bashPaso 2. Eliminar contenedores terminados
Utiliza el resultado del paso anterior para obtener los ID de los contenedores terminados. Pásalos directamente al comando docker rm
.
docker rm $(docker ps -a -f status=exited -q)
bashBorrar contenedores en Docker con más de un filtro
Para eliminar contenedores utilizando varios filtros, puedes utilizar el comando docker ps
junto con las opciones de filtro correspondientes y luego pasar los ID resultantes al comando docker rm
.
Paso 1. Listar contenedores con filtros
En primer lugar, debe introducirse el comando docker ps
con las opciones de filtro para obtener una lista con los contenedores según los filtros deseados. El estado “created” puede seleccionarse junto con “exited”. El estado created hace referencia a contenedores que se han creado, pero que aún no se han ejecutado.
docker ps -a -f status=exited -f status=created
bashPaso 2. Borrar contenedores de Docker
Igual que en el ejemplo anterior, debes escribir docker rm
con el resultado que hayas obtenido.
docker rm $(docker ps -a -f status=exited -f status=created -q)
bashEliminar contenedores según un patrón
Una forma eficaz de borrar contenedores de manera selectiva es encontrar todos los contenedores que coinciden con un patrón. Después debes eliminarlos utilizando awk
, xargs
y docker rm
.
Paso 1. Encontrar todos los contenedores con un patrón
Al utilizar el comando docker ps -a
en combinación con grep
, obtendrás todos los contenedores cuyos nombres o etiquetas coincidan con un patrón específico. Por ejemplo, puedes listar los contenedores cuyos nombres empiecen por “test-”:
docker ps -a | grep "test-"
bashPaso 2. Eliminar contenedores en Docker
Mediante el comando awk
es posible seleccionar columnas específicas del resultado. En este caso, queremos extraer la primera columna que contiene los ID de los contenedores. Finalmente, puede utilizarse xargs
para pasar los ID al comando docker rmi
y borrar los contenedores de Docker.
docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmi
bashDetener y borrar todos los contenedores de Docker
Puedes detener y eliminar todos los contenedores activos e inactivos del sistema a la vez, lo que puede ser útil al realizar una limpieza completa del entorno Docker.
Paso 1. Enumerar contenedores
Para comprobar la lista de contenedores, debes escribir el siguiente comando:
docker ps -a
bashPaso 2. Detener contenedores
Cuando hayas realizado tu selección, reenvía el resultado a docker stop
. De este modo, todos los contenedores se detendrán.
docker stop $(docker ps -a -q)
bashPaso 3. Borrar contenedores en Docker
Una vez que estén detenidos todos los contenedores, puedes eliminarlos utilizando el comando docker rm
:
docker rm $(docker ps -a -q)
bashA diferencia de los contenedores de Docker normales, los Docker volumes son mecanismos con los que se pueden persistir e intercambiar datos entre los contenedores y el sistema host. En nuestra guía encontrarás tutoriales sobre cómo borrar Docker volumes o cómo borrar Docker Images.