Chuck's Academy

Docker

Volúmenes y Almacenamiento Persistente en Docker

En aplicaciones que requieren almacenamiento de datos persistente, Docker permite gestionar datos mediante volúmenes. Los volúmenes aseguran que los datos no se eliminen cuando el contenedor se detiene o elimina, lo cual es crucial para aplicaciones como bases de datos. En este capítulo, exploraremos cómo crear y usar volúmenes en Docker.

¿Qué es un Volumen en Docker?

Un volumen es una unidad de almacenamiento gestionada por Docker que permite almacenar y compartir datos entre contenedores y con el sistema host. Los volúmenes ofrecen una forma segura y eficaz de manejar datos persistentes.

Esta imagen muestra ejemplo de como funciona un volumen en dockerEsta imagen muestra ejemplo de como funciona un volumen en docker

Creación de un Volumen

Para crear un volumen, se utiliza el comando docker volume create seguido del nombre del volumen:

bash
"El comando docker volume create my guión data guión volume crea un volumen llamado my-data-volume que se puede usar para almacenar datos persistentes."

Verificación de Volúmenes Existentes

Para listar todos los volúmenes disponibles en el sistema, use el comando:

bash
"El comando docker volume ls lista todos los volúmenes creados en el sistema, mostrando sus nombres y detalles."

Montaje de Volúmenes en Contenedores

Una vez creado el volumen, se puede montar en un contenedor al iniciarlo. Esto permite que el contenedor acceda y almacene datos en el volumen.

bash
"Este comando ejecuta el contenedor my-app y monta el volumen my-data-volume en la carpeta app barra data del contenedor, permitiendo que el contenedor almacene datos de manera persistente."

Tipos de Volúmenes

Docker ofrece varios tipos de volúmenes para satisfacer diferentes necesidades de almacenamiento:

  • Volúmenes Anónimos: Se crean automáticamente y no tienen un nombre asignado. Son útiles para almacenamiento temporal.
  • Volúmenes Nombrados: Se crean con un nombre específico y son reutilizables en diferentes contenedores.

Ejemplo de Volumen Nombrado

bash
"Aquí, el volumen my-data-volume es un volumen nombrado, lo cual significa que puede ser utilizado y montado en otros contenedores para mantener acceso consistente a los datos."

Ejemplo de Volumen Anónimo

bash
"Este comando crea un volumen anónimo montado en la carpeta app barra data del contenedor. Este tipo de volumen se utiliza típicamente para almacenamiento temporal, ya que no tiene un nombre específico."

Copia de Archivos entre Contenedor y Volumen

Docker permite copiar archivos entre el host y el volumen del contenedor utilizando el comando docker cp. Esto es útil para transferir datos sin modificar la imagen del contenedor.

bash
"Este comando copia la carpeta host-folder del sistema host al contenedor my-container en la carpeta app barra data. Es útil para transferir archivos al contenedor sin tener que reconstruir la imagen."

Eliminación de Volúmenes

Si un volumen ya no es necesario, se puede eliminar con el comando docker volume rm seguido del nombre del volumen:

bash
"El comando docker volume rm my-data-volume elimina el volumen llamado my-data-volume del sistema, liberando espacio de almacenamiento."

Es importante recordar que una vez eliminado, los datos almacenados en el volumen se perderán.

Práctica: Montando un Volumen en una Aplicación Web

A continuación, se muestra un ejemplo práctico de cómo montar un volumen en una aplicación web en Node.js para almacenar datos de forma persistente.

Dockerfile de ejemplo:

dockerfile
"En este Dockerfile, la imagen base es node catorce. Define el directorio de trabajo como app, copia el código fuente, instala dependencias, y define el comando principal que ejecuta server punto js."

Comando para ejecutar el contenedor con un volumen:

bash
"Este comando ejecuta la imagen my-node-app en un contenedor. Mapea el puerto tres mil del host al puerto tres mil del contenedor y monta el volumen my-data-volume en la carpeta app barra data del contenedor, permitiendo almacenamiento persistente de datos."

Conclusión

Los volúmenes son una herramienta esencial en Docker para manejar datos persistentes, permitiendo que los contenedores almacenen y compartan datos de manera segura y eficiente. En el siguiente capítulo, exploraremos el sistema de redes en Docker y cómo los contenedores pueden comunicarse entre sí y con el mundo exterior.


Pregúntame lo que sea