Docker
Tutorial Docker: Volúmenes Docker
Docker volúmenes: almacenamiento y gestión. Domina el almacenamiento y gestión de volúmenes en Docker mediante ejemplos prácticos.
Aprende Docker GRATIS y certifícateEn un contenedor Docker, el sistema de almacenamiento por defecto es efímero, lo que significa que cualquier dato creado o modificado dentro del contenedor se pierde irreversiblemente una vez que el contenedor se detiene o se elimina. Esta característica resulta útil para garantizar entornos limpios y predecibles, pero plantea un desafío cuando se quiere que los datos puedan persistir o puedan compartirse entre varios contenedores o sesiones de ejecución.
Para ello se utilizan volúmenes Docker. Los volúmenes son unidades de almacenamiento persistentes que existen independientemente de los contenedores, permitiendo que los datos persistan más allá del ciclo de vida de los contenedores individuales. Son muy útiles para almacenar bases de datos, configuraciones específicas, o cualquier dato que deba ser accesible de forma persistente o compartida entre contenedores.
Crear un volumen
El comando docker volume create
se utiliza para generar un nuevo volumen que puede ser montado en uno o varios contenedores, proporcionando un espacio de almacenamiento que permanece constante incluso cuando los contenedores se detienen o se eliminan. Al ejecutar simplemente docker volume create
seguido por un nombre opcional, se crea un volumen con la configuración predeterminada.
docker volume create mi-volumen
Este comando dispone de algunas opciones adicionales, como --driver
, que permite especificar el controlador de volumen a usar. Aunque el predeterminado es el controlador local, que almacena los datos en el host donde se ejecuta Docker, otros controladores pueden facilitar el almacenamiento en la nube o en sistemas de archivos distribuidos. Otra opción útil es -o
/--opt
, que permite establecer opciones específicas del controlador, como la ruta en el host para el controlador local, proporcionando así flexibilidad en la gestión de los datos.
Inspeccionar un volumen
Tras la creación de un volumen, es recomendable verificar su correcta configuración y existencia.
Para esto, el comando docker volume inspect
seguido del nombre del volumen ofrece una forma detallada de visualizar la configuración del volumen creado, incluyendo su ubicación, el controlador utilizado y cualquier opción especificada durante su creación.
docker volume inspect mi-volumen
Ver volúmenes montados
Vara verificar los volúmenes existentes se utiliza el comando docker volume ls
:
Montar un volumen
Una vez creado el volumen, puede utilizarse montando el volumen cuando se ejecuta el contenedor mediante docker run
.
Docker proporciona dos maneras principales para montar volúmenes en contenedores: mediante el uso de la opción -v
/ --volume
y mediante la opción --mount
.
Montar un volumen con -v
/ --volume
La opción -v
/ --volume
es la forma más antigua y sencilla de montar un volumen en un contenedor. Su sintaxis general es -v <nombre_del_volumen>:<ruta_en_el_contenedor>
para montar un volumen Docker existente, o -v <ruta_en_el_host>:<ruta_en_el_contenedor>
para montar un bind mount, que vincula directamente un directorio del sistema de archivos del host al contenedor.
Por ejemplo, para montar un volumen llamado mi_volumen
en el contenedor, en la ruta /datos
del contenedor, se usaría el siguiente comando al crear el contenedor:
docker run -v mi_volumen:/datos <nombre_de_imagen>
Esta sintaxis es concisa y fácil de usar, pero carece de la flexibilidad que algunos usuarios avanzados pueden requerir.
Montar un volumen con --mount
La opción --mount
introduce una sintaxis más detallada y flexible para montar volúmenes, bind mounts y tmpfs mounts. Ofrece una clara distinción entre el tipo de montaje, el origen y el destino, y permite especificar opciones adicionales.
Su sintaxis general es --mount type=<tipo_de_montaje>,source=<nombre_del_volumen>,destination=<ruta_en_el_contenedor>
para volúmenes, o --mount type=bind,source=<ruta_en_el_host>,destination=<ruta_en_el_contenedor>
para bind mounts.
Por ejemplo, para montar el mismo volumen mi_volumen
usando --mount
, el comando sería:
docker run --mount type=volume,source=mi_volumen,destination=/datos <nombre_de_imagen>
La opción --mount
es especialmente útil cuando se necesitan configuraciones más específicas, como montar el volumen en modo solo lectura (añadiendo ,readonly
al final de la opción --mount
), o cuando se utilizan tipos de montaje más avanzados.
Compartir un volumen entre contenedores
Para que varios contenedores tengan acceso a un mismo volumen, basta con montar ese mismo volumen en cada contenedor.
Por ejemplo, si se ha creado un volumen llamado mi_volumen_compartido
, se puede montar en dos contenedores diferentes mediante:
docker run -d --name contenedor1 -v mi_volumen_compartido:/datos <imagen1>
docker run -d --name contenedor2 -v mi_volumen_compartido:/datos <imagen2>
Ambos contenedores tendrían acceso al mismo espacio de almacenamiento en /datos
, permitiéndoles compartir archivos y datos de manera efectiva. Cualquier cambio realizado en el volumen desde un contenedor será visible para el otro contenedor, facilitando la comunicación y el intercambio de datos entre diferentes componentes de una aplicación.
Eliminar un volumen
Para eliminar un volumen y todos los datos contenidos en él, se puede usar el comando docker volume rm
, seguido del nombre del volumen.
docker volume rm mi-volumen
Es importante tener en cuenta que esta acción es irreversible y resultará en la pérdida permanente de los datos almacenados en el volumen.
Ejercicios de esta lección Volúmenes Docker
Evalúa tus conocimientos de esta lección Volúmenes Docker con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Crear un archivo Docker Compose con un servicio
Crear un archivo Docker Compose con varios servicios
Descargar imágenes de hub.docker.com
Instalación de Docker
Introducción a Docker
Crear imagen Dockerfile
Creación de contenedores
Creación de volumen Docker
Crear y usar redes Docker
Todas las lecciones de Docker
Accede a todas las lecciones de Docker y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Docker
Introducción Y Entorno Docker
Instalación De Docker
Introducción Y Entorno Docker
Descargar Imágenes De Hub.docker.com
Imágenes Docker
Crear Imágenes Con Dockerfile
Imágenes Docker
Contenedores Docker
Contenedores Docker
Volúmenes Docker
Volúmenes Docker
Redes Docker
Redes Docker
Creación De Archivos Docker Compose
Docker Compose
Docker Compose Para Varios Servicios
Docker Compose
Certificados de superación de Docker
Supera todos los ejercicios de programación del curso de Docker y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender la naturaleza efímera del almacenamiento en contenedores Docker y la necesidad de volúmenes para la persistencia de datos.
- Aprender a crear volúmenes Docker usando el comando
docker volume create
, y cómo inspeccionar un volumen condocker volume inspect
. - Saber cómo montar volúmenes en contenedores usando las opciones
-v
/--volume
o--mount
. - Entender el proceso para compartir un volumen entre varios contenedores, y cómo eliminar un volumen con
docker volume rm
.