Introducción
La tecnología de contenedores ha revolucionado el despliegue de aplicaciones al proporcionar entornos aislados, ligeros y portátiles. Sin embargo, la gestión de datos dentro de los contenedores plantea desafíos únicos, especialmente para garantizar la persistencia de la información a lo largo del ciclo de vida de los mismos. Este desafío te guiará a través de las técnicas esenciales para una gestión de datos eficaz en Docker.
Aprenderás a crear y utilizar volúmenes de Docker, montarlos en contenedores, escribir y leer datos desde ellos, y realizar operaciones de copia de seguridad y restauración. Estas habilidades son fundamentales para desarrollar aplicaciones contenerizadas robustas que requieran almacenamiento persistente.
Comencemos nuestra exploración de la gestión de datos en contenedores Docker.
Crear un Volumen de Docker
En este paso, crearás un volumen de Docker, que es un objeto gestionado para almacenar datos persistentes de forma independiente a los contenedores.
Tareas
- Crea un nuevo volumen de Docker llamado
myvolumeutilizando el comandodocker volume create. - Lista todos los volúmenes de Docker para verificar la creación de
myvolume.
Requisitos
- Realiza todas las operaciones en el directorio
/home/labex/project. - Utiliza el controlador de volumen (driver) por defecto al crear el volumen.
Ejemplo
Después de completar este paso, al ejecutar docker volume ls deberías ver una salida similar a esta:
DRIVER VOLUME NAME
local myvolume
Montar un Volumen de Docker en un Contenedor
Ahora que tenemos un volumen, vamos a conectarlo a un contenedor. Este paso demuestra cómo poner el almacenamiento persistente a disposición de un contenedor en ejecución.
Tareas
- Ejecuta un nuevo contenedor de Docker llamado
my-containerbasado en la imagennginx. - Monta el volumen
myvolumeen la ruta/app/datadentro del contenedor. - Verifica que el volumen esté correctamente montado utilizando el comando
docker inspect.
Requisitos
- Realiza todas las operaciones en el directorio
/home/labex/project. - Ejecuta el contenedor en modo desatendido (detached).
- Utiliza la opción
-vpara montar el volumen al iniciar el contenedor.
Ejemplo
Tras ejecutar el contenedor, docker inspect my-container debería mostrar una salida que contenga:
"Mounts": [
{
"Type": "volume",
"Name": "myvolume",
"Source": "/var/lib/docker/volumes/myvolume/_data",
"Destination": "/app/data",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
]
Escribir Datos en un Volumen de Docker
En este paso, aprenderás a escribir datos en un volumen de Docker montado, lo que permite la persistencia de los datos incluso si el contenedor se elimina.
Tareas
- Utiliza el comando
docker execpara acceder al contenedormy-container. - Crea un archivo llamado
hello.txten el directorio/app/datadentro del contenedor. - Escribe el contenido "Hello, World!" en el archivo
hello.txt.
Requisitos
- Realiza todas las operaciones en el directorio
/home/labex/project. - Utiliza el comando
echopara escribir el contenido en el archivo.
Ejemplo
Después de ejecutar los comandos, deberías poder ver el archivo:
$ docker exec my-container ls /app/data
hello.txt
Leer Datos de un Volumen de Docker
Ahora que hemos escrito datos en nuestro volumen, verifiquemos que podemos leerlos de nuevo, demostrando la persistencia de los datos a través de las operaciones del contenedor.
Tareas
- Utiliza el comando
docker execpara acceder al contenedormy-container. - Lee y muestra el contenido del archivo
/app/data/hello.txt.
Requisitos
- Realiza todas las operaciones en el directorio
/home/labex/project. - Utiliza el comando
catpara mostrar el contenido del archivo.
Ejemplo
La salida de tu comando debería ser:
Hello, World!
Copia de Seguridad y Restauración de un Volumen de Docker
En este paso final, aprenderás a realizar una copia de seguridad de los datos de un volumen de Docker y a restaurarlos en un nuevo volumen, lo cual es crucial para escenarios de migración de datos y recuperación ante desastres.
Tareas
- Crea una copia de seguridad de los datos del volumen
myvolumecomo un archivo comprimido llamadomyvolume.tar.gzen el directorio/home/labex/project. - Crea un nuevo volumen de Docker llamado
mynewvolume. - Restaura los datos de la copia de seguridad en
mynewvolume.
Requisitos
- Realiza todas las operaciones en el directorio
/home/labex/project. - Utiliza
docker runcon la opción--rmpara usar contenedores temporales durante las operaciones de copia de seguridad y restauración.
Ejemplo
Después de completar el proceso de copia de seguridad y restauración, al verificar el contenido del nuevo volumen deberías obtener:
$ docker run --rm -v mynewvolume:/app/data alpine cat /app/data/hello.txt
Hello, World!
Resumen
En este desafío, has adquirido experiencia práctica en la gestión de datos dentro de contenedores Docker. Has aprendido a:
- Crear y gestionar volúmenes de Docker.
- Montar volúmenes en contenedores.
- Escribir y leer datos desde los volúmenes.
- Realizar copias de seguridad de los datos de un volumen y restaurarlos en uno nuevo.
Estas habilidades son fundamentales para desarrollar aplicaciones contenerizadas robustas que requieren almacenamiento persistente. A medida que continúes tu camino con Docker, recuerda que una gestión de datos eficaz es crucial para mantener el estado de la aplicación, garantizar la durabilidad de la información y facilitar procesos operativos fluidos.
Para escenarios más avanzados, considera explorar controladores de volumen para la integración con almacenamiento en la nube, implementar estrategias de copia de seguridad automatizadas y estudiar cómo interactúan los volúmenes con Docker Swarm y Kubernetes para soluciones de almacenamiento distribuido.



