Cómo usar docker rm: eliminar contenedores Docker paso a paso

| Última modificación: 1 de junio de 2026 | Tiempo de Lectura: 5 minutos
Premios Blog KeepCoding 2025

Contribuyo a acercar la realidad del sector tecnológico a nuevos profesionales, combinando conocimiento práctico, visión de mercado y experiencia directa en procesos de transformación profesional.

Al trabajar con Docker es fácil acumular contenedores detenidos que ocupan espacio en disco sin aportar valor. Cada vez que se ejecuta docker run sin el flag --rm, el contenedor queda registrado en el sistema aunque haya terminado su ejecución. Con el tiempo, esa acumulación ralentiza los comandos de listado y consume espacio innecesario.

docker rm es el comando para eliminar contenedores. Esta guía cubre todas sus opciones: desde eliminar un contenedor individual hasta limpiar por completo el entorno Docker.

Para entender el ciclo de vida completo de los contenedores donde encaja docker rm, el artículo sobre qué es Docker explica la arquitectura de contenedores e imágenes desde los fundamentos.



Sintaxis básica de docker rm

La forma más simple de usar docker rm es pasar el nombre o el ID del contenedor:

# Eliminar por nombre
docker rm mi-contenedor

# Eliminar por ID (sirven los primeros caracteres del ID)
docker rm a3f5c8e9d2b1
docker rm a3f5

Si el contenedor está en ejecución, Docker devuelve un error:

Error response from daemon: cannot remove container "/mi-contenedor": 
container is running: stop the container before removing or force remove

Para eliminarlo hay que detenerlo primero o usar el flag -f.

Opciones principales de docker rm

Opciones de docker rm
Opción Función
-f / --force Fuerza la eliminación aunque el contenedor esté en ejecución. Lo detiene y elimina en una sola operación.
-v / --volumes Elimina también los volúmenes anónimos asociados al contenedor. Los volúmenes nombrados no se eliminan.
-l / --link Elimina el enlace especificado entre contenedores (legacy networking).

Forzar la eliminación de un contenedor en ejecución

docker rm

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

El flag -f elimina el contenedor aunque esté corriendo, enviando una señal SIGKILL al proceso principal:

# Forzar eliminación de un contenedor en ejecución
docker rm -f mi-contenedor

# Equivalente a:
docker stop mi-contenedor && docker rm mi-contenedor

La diferencia entre los dos enfoques es importante en producción. docker stop envía primero SIGTERM al proceso, esperando 10 segundos para que se cierre limpiamente antes de forzar con SIGKILL. docker rm -f envía SIGKILL directamente, sin tiempo de gracia.

Para aplicaciones que necesitan guardar estado o cerrar conexiones limpiamente (bases de datos, por ejemplo), es mejor hacer docker stop explícito antes que forzar con -f.

Eliminar múltiples contenedores a la vez

Se pueden pasar varios nombres o IDs separados por espacios:

# Eliminar varios contenedores a la vez
docker rm contenedor1 contenedor2 contenedor3

# Eliminar todos los contenedores detenidos de una vez (método clásico)
docker rm $(docker ps -a -q)

# Solo los contenedores con estado exited
docker rm $(docker ps -a -f status=exited -q)

El subshell $(docker ps -a -q) devuelve todos los IDs de los contenedores. Pasado a docker rm los elimina todos en una sola operación. Si alguno está en ejecución, el comando devuelve error para ese contenedor pero sigue eliminando el resto.

Eliminar un contenedor con sus volúmenes asociados

Por defecto, docker rm no elimina los volúmenes asociados al contenedor. El flag -v los incluye:

# Eliminar contenedor y sus volúmenes anónimos
docker rm -v mi-contenedor

# Forzar y eliminar volúmenes
docker rm -fv mi-contenedor

Es importante saber que el flag -v solo elimina volúmenes anónimos (los creados automáticamente por Docker sin nombre explícito). Los volúmenes nombrados (creados con docker volume create o con nombre en el docker-compose.yml) no se eliminan con docker rm -v y hay que borrarlos manualmente con docker volume rm.

El flag –rm en docker run: eliminación automática

Para contenedores que se usan una sola vez y no necesitan conservarse, el flag --rm en docker run elimina el contenedor automáticamente cuando el proceso principal termina:

# El contenedor se elimina automáticamente al terminar
docker run --rm ubuntu echo "Hola desde Docker"

# Ejecutar un script y limpiar automáticamente
docker run --rm -v $(pwd):/app python:3.12-slim python /app/script.py

# Test de una imagen sin dejar rastro
docker run --rm miapp:latest npm test

Es especialmente útil para tareas puntuales: ejecutar un script, hacer un test, probar un comando. El contenedor no se acumula en el sistema después de la ejecución.

Para ver cómo integrar esto en flujos de despliegue locales, el artículo sobre despliegue de aplicaciones locales con Docker cubre la gestión completa del ciclo de vida.

Limpiar el entorno Docker: prune y system prune

Cuando la acumulación de contenedores, imágenes y volúmenes no usados se convierte en un problema de espacio, Docker tiene comandos de limpieza masiva.

docker container prune: eliminar todos los contenedores detenidos

# Eliminar todos los contenedores detenidos (pide confirmación)
docker container prune

# Sin confirmación (para scripts)
docker container prune -f

# Salida típica:
# Deleted Containers:
# a3f5c8e9d2b14f7a
# b5c7d9e1f3a5c7e9
# Total reclaimed space: 245MB

docker system prune: limpieza completa del entorno

# Eliminar contenedores detenidos, redes sin usar, imágenes huérfanas y caché de build
docker system prune

# Incluir también imágenes sin usar (no solo las huérfanas)
docker system prune -a

# Incluir además volúmenes
docker system prune -a --volumes

# Sin confirmación
docker system prune -af
Precaución con docker system prune -a –volumes: Este comando elimina también imágenes que no están siendo usadas por ningún contenedor en ejecución, incluyendo las que podrías querer conservar. En entornos de desarrollo elimina la caché de builds acumulada, lo que puede hacer que el siguiente build tarde más. Úsalo cuando realmente necesites liberar espacio y no cuando quieras una limpieza rutinaria.

Comparativa de comandos de limpieza

Comandos de limpieza de Docker
Comando Qué elimina
docker rm nombre Un contenedor específico detenido
docker rm -f nombre Un contenedor (aunque esté en ejecución)
docker container prune Todos los contenedores detenidos
docker image prune Imágenes sin etiqueta (huérfanas)
docker volume prune Volúmenes no usados por ningún contenedor
docker network prune Redes no usadas por ningún contenedor
docker system prune Contenedores detenidos + redes sin usar + imágenes huérfanas + caché de build
docker system prune -a Todo lo anterior + imágenes sin usar por ningún contenedor activo

Diferencia entre docker rm y docker rmi

Es una fuente de confusión frecuente, especialmente cuando se empieza con Docker.

docker rm

Elimina contenedores: las instancias creadas a partir de una imagen. Un contenedor es la aplicación en ejecución o detenida. Eliminar el contenedor no afecta a la imagen de la que se creó.

docker rmi

Elimina imágenes: las plantillas de solo lectura desde las que se crean los contenedores. No se puede eliminar una imagen si hay algún contenedor (aunque esté detenido) que se creó a partir de ella.


# Flujo completo: eliminar contenedor y luego la imagen
docker stop mi-contenedor
docker rm mi-contenedor
docker rmi miapp:latest

# Verificar que no quedan contenedores usando la imagen antes de eliminarla
docker ps -a --filter ancestor=miapp:latest

Errores frecuentes con docker rm

Estos son los errores más habituales y cómo resolverlos:

# Error: contenedor en ejecución
# Error: cannot remove container: container is running
# Solución: detenerlo primero o usar -f
docker stop mi-contenedor && docker rm mi-contenedor

# Error: contenedor no existe
# Error: No such container: nombre
# Verificar con docker ps -a que el nombre es correcto
docker ps -a

# Error: imagen en uso al intentar docker rmi
# Error: conflict: unable to delete image: image has dependent child images
# Solución: eliminar primero todos los contenedores que usan esa imagen
docker rm $(docker ps -a -f ancestor=miapp:latest -q)
docker rmi miapp:latest
Conoce la historia de Esther López
«

Esther llegó al Bootcamp DevOps de KeepCoding desde la psicología y los recursos humanos. Aprendió Docker desde cero: no solo los comandos, sino el modelo mental de cómo funcionan los contenedores, las imágenes y el ciclo de vida completo.

Hoy trabaja como DevOps Engineer en un proyecto bancario de gran escala. Gestionar el ciclo de vida de los contenedores y mantener el entorno limpio son tareas del día a día en ese tipo de rol. Lo más valioso del bootcamp fue aprender con proyectos reales desde el primer módulo.

«
Leer el caso de éxito completo de Esther López

Cómo aprender Docker a nivel profesional

docker rm

Gestionar el ciclo de vida de los contenedores, entender cuándo eliminar un contenedor de forma limpia versus forzada, y mantener el entorno Docker organizado son habilidades que se desarrollan con la práctica en proyectos reales.

La diferencia entre un desarrollador que usa Docker y un profesional DevOps que lo opera en producción está en ese tipo de criterio operativo.

Sobre el Bootcamp DevOps de KeepCoding: El ciclo de vida completo de los contenedores, incluyendo su eliminación correcta y la gestión del espacio en entornos de producción, son módulos del programa. Los alumnos aprenden a operar Docker con criterio profesional. Duración 6 meses, tasa de empleabilidad del 100%.

Para aprender a operar Docker con proyectos reales y profesores en activo, el DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding cubre el recorrido completo en 6 meses.



Conclusión

bootcamp devops

docker rm es el comando esencial para mantener el entorno Docker limpio. La acumulación de contenedores detenidos sin eliminar es uno de los problemas más comunes en equipos que usan Docker sin una política de limpieza establecida. DevOps y Cloud Computing Full Stack Bootcamp de KeepCoding.

La combinación de --rm en docker run para contenedores de un solo uso, docker container prune para limpiar periódicamente los detenidos y docker system prune para limpiezas más profundas cubre la mayor parte de las necesidades de gestión del ciclo de vida de los contenedores en cualquier entorno de trabajo.

La referencia oficial de docker rm con todas sus opciones está en docs.docker.com/reference/cli/docker/container/rm/.

Noticias recientes del mundo tech

¡CONVOCATORIA ABIERTA!

Bootcamp devops & cloud computing

Clases en Directo | Acceso a +600 empresas | Empleabilidad de 99,36%

Descárgate también el informe de tendencias en el mercado laboral 2026.

Fórmate con planes adaptados a tus objetivos y logra resultados en tiempo récord.
KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.