En esta lección aprenderás qué son los volúmenes en Docker y por qué son la forma habitual de conservar datos aunque borres o recrees un contenedor. Es una pieza clave cuando una aplicación necesita guardar archivos, bases de datos o configuración persistente.
La idea no es memorizar una definición, sino entender qué problema resuelven: separar el ciclo de vida del contenedor del ciclo de vida de los datos.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis
Para qué sirven los volúmenes en Docker
Problema: el sistema de archivos de un contenedor es efímero. Si borras el contenedor, todo lo que guardaste solo dentro de él puede desaparecer.
Qué aporta Docker: un volumen guarda datos fuera del contenedor, gestionados por Docker, para que puedas recrear la aplicación sin perder la información importante.
| Caso | Por qué usar un volumen |
|---|---|
| Base de datos | Los datos deben sobrevivir a reinicios y recreaciones. |
| Archivos subidos por usuarios | No deberían depender del contenedor que atiende la web. |
| Datos compartidos | Varios contenedores pueden acceder al mismo almacenamiento. |
| Pruebas locales | Puedes borrar contenedores sin perder el estado que quieres revisar. |
Crear e inspeccionar un volumen
El primer paso es crear un volumen con nombre. Después puedes listarlo e inspeccionarlo para ver cómo Docker lo reconoce internamente.
docker volume create datos-demo
docker volume ls
docker volume inspect datos-demoResultado esperado: Docker muestra el volumen en el listado y, con inspect, enseña datos como el nombre, el driver y el punto de montaje interno del host. No necesitas entrar manualmente en esa ruta para trabajar con él.
Montar un volumen en un contenedor
Para usar el volumen, lo montas dentro de una ruta del contenedor. En este ejemplo se conecta un volumen llamado datos-demo a la carpeta que Nginx usa para servir archivos.
docker run -d --name web-volumen -v datos-demo:/usr/share/nginx/html nginx:alpine
docker inspect web-volumen --format '{{json .Mounts}}' - El nombre antes de los dos puntos es el volumen gestionado por Docker.
- La ruta después de los dos puntos es el punto donde aparece dentro del contenedor.
- Inspect te permite confirmar que el montaje quedó aplicado.
- No confundas volumen con imagen: la imagen define la aplicación; el volumen conserva datos.
Volúmenes y Docker Compose
Cuando el servicio crece, lo normal es declarar los volúmenes en Compose. Así la configuración queda escrita y puedes repetir el entorno sin recordar comandos sueltos.
services:
app:
image: nginx:alpine
volumes:
- datos-web:/usr/share/nginx/html
volumes:
datos-web:Este patrón es más fácil de mantener que crear contenedores a mano. Además, deja claro qué datos son persistentes y qué servicio los consume.
Errores comunes
- Guardar datos importantes solo dentro del contenedor y luego borrarlo pensando que no pasará nada.
- Confundir un volumen gestionado por Docker con un bind mount del host.
- Montar un volumen vacío encima de una ruta que ya tenía archivos importantes en la imagen.
- Borrar volúmenes sin revisar si una base de datos o aplicación depende de ellos.
- No declarar los volúmenes en Compose y perder reproducibilidad del entorno.
- Dar permisos demasiado amplios para “arreglar” problemas de escritura sin entender la causa.
Antes de limpiar, revisa qué contenedores usan cada volumen. La eliminación de contenedores no borra automáticamente un volumen con nombre, pero borrar el volumen sí elimina los datos que contiene.
docker stop web-volumen
docker rm web-volumen
docker volume ls
docker volume rm datos-demoLa regla práctica para volúmenes en Docker es sencilla: si el dato importa, no lo dejes atrapado en el contenedor. Sácalo a un volumen, decláralo y documenta cómo se usa.
Lecciones relacionadas del curso Docker
- Cómo definir volúmenes en Compose: lleva la persistencia a un archivo reproducible.
- Cuándo utilizar volumen, bind mount o tmpfs: elige el tipo de montaje correcto.
- Qué es un montaje tmpfs: entiende cuándo usar almacenamiento temporal.
- Cómo montar el código local dentro del contenedor: compara volúmenes y bind mounts en desarrollo.
- guía completa de Docker: vuelve al índice del curso.
Documentación oficial y recursos
- Docker volumes: guía oficial sobre volúmenes y persistencia.
- docker volume create: referencia para crear volúmenes.
- docker volume ls: referencia para listar volúmenes.
- docker volume inspect: consulta detalles de un volumen.
- docker volume rm: elimina volúmenes con cuidado.
En resumen, los volúmenes en Docker permiten separar aplicación y datos. Puedes borrar o recrear contenedores sin perder la información que debe persistir.
Si los usas bien, tus entornos serán más seguros, más repetibles y más fáciles de migrar. Si los ignoras, tarde o temprano acabarás perdiendo datos o mezclando configuración, aplicación y almacenamiento en el mismo sitio.

