Contenido
Tutorial de docker compose down: detén y elimina contenedores, redes y volúmenes
docker compose down detiene y elimina los contenedores y las redes de un proyecto de Compose.
Sintaxis
docker compose down [OPCIONES] [SERVICIO...]
| Opción | Descripción |
|---|---|
-v, --volumes | Elimina también los volúmenes con nombre y anónimos declarados en compose.yaml (se pierden los datos) |
--rmi local|all | Elimina también las imágenes. local elimina solo las imágenes sin etiqueta personalizada (las que construyó Compose); all elimina todas las imágenes que usan los servicios |
--remove-orphans | Elimina también los contenedores de servicios que ya no están en compose.yaml |
-t, --timeout SEGUNDOS | Segundos de espera al detener los contenedores (10 por defecto) |
--dry-run | Solo muestra lo que haría |
Ejemplo
El proyecto de ejemplo de docker compose up:
$ docker compose down
[+] down 4/4
✔ Container ref-compose-worker-1 Removed 0.0s
✔ Container ref-compose-web-1 Removed 0.2s
✔ Container ref-compose-cache-1 Removed 0.2s
✔ Network ref-compose_default Removed 0.0s
$ docker volume ls
DRIVER VOLUME NAME
local ref-compose_cache_data
$ docker compose up -d
[+] up 4/4
✔ Network ref-compose_default Created 0.0s
✔ Container ref-compose-worker-1 Started 0.3s
✔ Container ref-compose-cache-1 Started 0.6s
✔ Container ref-compose-web-1 Started 0.8s
$ docker compose down -v -t 1
[+] down 5/5
✔ Container ref-compose-web-1 Removed 0.1s
✔ Container ref-compose-worker-1 Removed 0.0s
✔ Container ref-compose-cache-1 Removed 0.2s
✔ Volume ref-compose_cache_data Removed 0.0s
✔ Network ref-compose_default Removed 0.0s
$ docker volume ls
DRIVER VOLUME NAME
downsin opciones: elimina los 3 contenedores y la red, pero conserva el volumenref-compose_cache_data.down -v -t 1: elimina también el volumen, así que se pierden los datos de Redis.-t 1espera como máximo 1 segundo por contenedor antes de forzar la parada, lo que agiliza las cosas en un entorno de práctica. En producción, deja el valor por defecto para que la aplicación tenga tiempo de cerrarse correctamente.
Elegir entre down, stop y rm
| Comando | Contenedores | Red | Volumen | Uso |
|---|---|---|---|---|
docker compose stop | Detenidos, se conservan | Se conserva | Se conserva | Pausar los servicios y reanudarlos después con start |
docker compose rm | Elimina los contenedores detenidos | Se conserva | Se conserva | Rara vez se usa por sí solo |
docker compose down | Los detiene y elimina | Se elimina | Se conserva | Apagado normal; los datos están a salvo |
docker compose down -v | Los detiene y elimina | Se elimina | Se elimina | Empezar de cero, por ejemplo para reinicializar una base de datos |
Los scripts de inicialización de bases de datos y las variables de contraseña solo surten efecto con el volumen vacío. Por eso, si cambias esa configuración y quieres reinicializar, usa
down -v; consulta los detalles en MySQL.
Capítulos relacionados
Ejercicios
Ejercicio: con un solo comando, detén y elimina los contenedores, la red y las imágenes construidas por Compose del proyecto, pero conserva los datos.
Respuesta
docker compose down --rmi local
Sin -v, los volúmenes se conservan.
Preguntas frecuentes
¿docker compose down borra los datos de la base de datos?
**No**, si no añades opciones. Los volúmenes se conservan y tus datos seguirán ahí la próxima vez que ejecutes up. Añade -v para eliminar los volúmenes declarados en compose.yaml.
¿Las imágenes siguen ahí después de down?
Sí. Usa --rmi local para eliminar las imágenes construidas por Compose, o --rmi all para eliminar también las descargadas.
¿Y si solo quiero detener temporalmente sin eliminar los contenedores?
Usa docker compose stop y, para reanudar, docker compose start.
Actualizado 14 de octubre de 2026