Volúmenes en Docker

volumen-docker
volumen-docker

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.

CasoPor qué usar un volumen
Base de datosLos datos deben sobrevivir a reinicios y recreaciones.
Archivos subidos por usuariosNo deberían depender del contenedor que atiende la web.
Datos compartidosVarios contenedores pueden acceder al mismo almacenamiento.
Pruebas localesPuedes 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-demo

Resultado 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-demo

La 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

Documentación oficial y recursos

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.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *