Gestión de volúmenes en Docker
Qué cubre este artículo sobre volúmenes en Docker
- Por qué los volúmenes son importantes.
- Diferencias entre volúmenes nombrados, bind mounts y tmpfs.
- Cómo crear, listar y eliminar volúmenes.
- Cómo hacer copias de seguridad y restaurar volúmenes.
- Errores comunes y consejos prácticos.
Introducción: Gestión de volúmenes en Docker
Los contenedores de Docker son sin estado por defecto. Una vez eliminado un contenedor, se pierden todos los datos almacenados en él. Para preservar configuraciones, modelos, bases de datos y datos de trabajo, es necesario persistir la información en el host o en áreas de almacenamiento separadas. Docker proporciona volúmenes para esto. Entender bien cómo funcionan los volúmenes te ayuda a evitar pérdidas de datos y reiniciar contenedores de forma segura.
Este artículo presenta los tipos de volúmenes más comunes, comandos esenciales y estrategias de copias de seguridad para proyectos de IA local.
Términos clave
- Volume: Área de almacenamiento gestionada para datos de contenedores.
- Named Volume: Volumen nombrado, administrado por Docker.
- Bind Mount: Directorio del host que se monta dentro del contenedor.
- tmpfs Mount: Almacenamiento temporal en RAM.
- Layer: Capa escribible de un contenedor.
- Persistencia: Los datos se mantienen después de que el contenedor finaliza.
- Driver: Controlador de almacenamiento para volúmenes.
¿Por qué volúmenes?
- Los datos persisten cuando se eliminan contenedores.
- Las imágenes de contenedor permanecen pequeñas y portátiles.
- Múltiples contenedores pueden compartir datos.
- Las copias de seguridad y migraciones son más simples.
- Los datos están fuera de las capas del contenedor.
Tipos de volúmenes
Volúmenes nombrados
Docker gestiona la ubicación del almacenamiento. Los datos suelen estar bajo /var/lib/docker/volumes/.
docker volume create ollama-data
Uso sencillo:
docker run -d -v ollama-data:/root/.ollama ollama/ollama
Bind Mounts
Un directorio del host se monta dentro del contenedor. La ruta está claramente definida.
docker run -d -v /ruta/en/host:/ruta/en/contenedor ollama/ollama
Es útil para desarrollo y cuando necesitas acceder directamente a los archivos.
Mounts tmpfs
Los datos se almacenan en RAM y se pierden cuando se detiene el contenedor. Adecuado para datos temporales.
docker run -d --tmpfs /tmp ollama/ollama
Volúmenes con docker run
docker run -d \
--name ollama \
-v ollama-data:/root/.ollama \
-p 11434:11434 \
ollama/ollama
Volúmenes en Compose
services:
ollama:
image: ollama/ollama
volumes:
- ollama-data:/root/.ollama
volumes:
ollama-data:
Administración de volúmenes
| Comando | Propósito |
|---|---|
docker volume ls | Listar todos los volúmenes. |
docker volume create <nombre> | Crear un volumen. |
docker volume inspect <nombre> | Mostrar detalles. |
docker volume rm <nombre> | Eliminar un volumen. |
docker volume prune | Eliminar volúmenes no utilizados. |
Copia de seguridad y restauración
Copia de seguridad
docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -czf /backup/ollama-data.tar.gz -C /data .
Restauración
docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -xzf /backup/ollama-data.tar.gz -C /data
Con contenedor en ejecución
docker exec ollama tar -czf - /root/.ollama > ollama-data.tar.gz
Migración de volúmenes
Los volúmenes se pueden transferir a otro host:
docker run --rm -v ollama-data:/data -v $(pwd):/backup busybox tar -czf /backup/ollama-data.tar.gz -C /data .
scp ollama-data.tar.gz otro-host:/ruta/
docker run --rm -v nuevo-ollama-data:/data -v /ruta:/backup busybox tar -xzf /backup/ollama-data.tar.gz -C /data
Diferencia entre volúmenes nombrados y bind mounts
| Aspecto | Volumen nombrado | Bind Mount |
|---|---|---|
| Administración | Docker | Usuario |
| Ruta | Interna, abstracta | Ruta fija en host |
| Portabilidad | Alta | Dependiente de ruta |
| Acceso | Menos directo | Directo en host |
| Seguridad | Adaptada a usuario de contenedor | Permisos del host |
Mejores prácticas
- Usa volúmenes nombrados en producción, bind mounts en desarrollo.
- Planifica los volúmenes antes de iniciar contenedores.
- Realiza copias de seguridad regularmente.
- No ejecutes
docker volume prunesi hay datos importantes que podrían perderse. - Verifica los permisos si encuentras errores de acceso denegado.
- Usa nombres descriptivos para los volúmenes.
Errores comunes
- Olvidar el volumen: Los datos se pierden al reiniciar el contenedor.
- Ruta incorrecta en contenedor: Los datos no se guardan donde se espera.
- Permisos de acceso: El usuario del contenedor no puede acceder a archivos del host.
- Volume prune: Eliminar datos accidentalmente.
- Rutas de red: Los bind mounts en sistemas de archivos remotos pueden causar problemas.
- Múltiples contenedores en un volumen: Las escrituras simultáneas pueden generar conflictos.
Enlaces y recursos adicionales
- BotServ.de Comandos Docker
- BotServ.de Docker Compose
- BotServ.de Copias de seguridad y restauración en Proxmox
- BotServ.de Comandos Ollama
Preguntas frecuentes: Volúmenes en Docker
¿Cuándo debo usar volúmenes nombrados? Para bases de datos, modelos, configuraciones y cualquier cosa que deba persistir.
¿Cuándo usar bind mounts? Cuando necesitas leer o escribir directamente desde el directorio del host.
¿Dónde están ubicados los volúmenes nombrados?
En Linux, generalmente en /var/lib/docker/volumes/.
¿Cómo hago una copia de seguridad de los volúmenes?
Con tar a través de un contenedor temporal o con docker cp.
¿Son los volúmenes más rápidos que los bind mounts? En la mayoría de casos la diferencia es mínima. Los bind mounts pueden ser más lentos en sistemas de archivos en red.
Fuentes y lecturas recomendadas
- Docker Volumes: https://docs.docker.com/storage/volumes/
- Docker Bind Mounts: https://docs.docker.com/storage/bind-mounts/
- Docker Storage: https://docs.docker.com/storage/
Resumen: Gestión de volúmenes en Docker
Los volúmenes en Docker son clave para los datos persistentes en contenedores. Los volúmenes nombrados son cómodos y portátiles, mientras que los bind mounts ofrecen acceso directo al host. Si planificas bien los volúmenes, haces copias de seguridad regularmente y prestas atención a los permisos, evitarás pérdidas de datos y obtendrás servicios de IA estables. Especialmente con Ollama, bases de datos e interfaces web, los volúmenes son imprescindibles para que los modelos y configuraciones estén disponibles después de un reinicio.


