Skip to content
BotServBotServ
DockerVolumesBind MountsBackupDatosContainer

Gestionar Docker Volumes

Docker Volumes para datos persistentes. Named Volumes, Bind Mounts, Backups, Pruning y mejores prácticas.

S

schutzgeist

4 min read
Gestionar Docker Volumes

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

ComandoPropósito
docker volume lsListar 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 pruneEliminar 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

AspectoVolumen nombradoBind Mount
AdministraciónDockerUsuario
RutaInterna, abstractaRuta fija en host
PortabilidadAltaDependiente de ruta
AccesoMenos directoDirecto en host
SeguridadAdaptada a usuario de contenedorPermisos 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 prune si 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

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

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.

Volver al blog
Share:

Entradas relacionadas