Curso Docker

Volúmenes en Docker

En Docker, los volúmenes se utilizan para almacenar datos que queremos que persistan incluso si el contenedor es eliminado o reiniciado. A diferencia del almacenamiento en el propio contenedor, los volúmenes permiten compartir datos entre varios contenedores y conservarlos independientemente del ciclo de vida del contenedor.

Por ejemplo, si tienes una aplicación que guarda datos en una base de datos, puedes usar un volumen para que los datos no se pierdan cuando el contenedor de la base de datos se detenga o elimine.


Comandos para gestionar volúmenes en Docker

1. docker volume create <nombre_volumen>: Crear un volumen

Este comando crea un nuevo volumen que podrás montar en los contenedores para persistir los datos.

Ejemplo:

1docker volume create datos_db

Este comando crea un volumen llamado datos_db. Este volumen puede ser utilizado en uno o más contenedores para almacenar información como bases de datos, archivos o cualquier otro tipo de dato.


2. docker volume ls: Listar volúmenes

Con este comando puedes ver todos los volúmenes que se han creado en tu sistema Docker.

Ejemplo:

1docker volume ls

Salida esperada:

DRIVER    VOLUME NAME
local     datos_db
local     otro_volumen

Aquí puedes ver una lista de todos los volúmenes que están disponibles, en este caso, dos volúmenes: datos_db y otro_volumen. El controlador por defecto es local, que significa que el volumen está almacenado localmente en tu sistema.


3. docker volume rm <nombre_volumen>: Eliminar un volumen

Si ya no necesitas un volumen, puedes eliminarlo con este comando. Es importante asegurarte de que el volumen no esté en uso por algún contenedor antes de eliminarlo.

Ejemplo:

1docker volume rm datos_db

Esto eliminará el volumen datos_db de tu sistema. Si el volumen está en uso por un contenedor, Docker no permitirá eliminarlo hasta que el contenedor deje de usarlo.


4. docker volume inspect <nombre_volumen>: Obtener detalles de un volumen

Este comando proporciona información detallada sobre un volumen, como su ubicación en el sistema de archivos y cómo se está utilizando.

Ejemplo:

1docker volume inspect datos_db

Salida esperada (resumida):

1[
2    {
3        "CreatedAt": "2023-10-07T12:34:56Z",
4        "Driver": "local",
5        "Labels": {},
6        "Mountpoint": "/var/lib/docker/volumes/datos_db/_data",
7        "Name": "datos_db",
8        "Scope": "local"
9    }
10]

Aquí puedes ver detalles como:

  • Mountpoint: La ruta en el sistema donde se almacena el volumen (/var/lib/docker/volumes/datos_db/_data).
  • CreatedAt: Cuándo se creó el volumen.
  • Driver: El controlador que usa (en este caso, local).

Usar volúmenes en contenedores

Una vez creado un volumen, puedes usarlo en tus contenedores para persistir datos. Por ejemplo, supongamos que tienes una aplicación web que guarda archivos en el sistema de archivos del contenedor:

1docker run -d -v datos_db:/app/data nginx

Este comando monta el volumen datos_db en la ruta /app/data dentro del contenedor nginx, asegurando que cualquier archivo guardado en esa ruta dentro del contenedor persista incluso si el contenedor es eliminado.


Resumen de los comandos

  • docker volume create: Crea un nuevo volumen para persistir datos.
  • docker volume ls: Lista todos los volúmenes disponibles en tu sistema.
  • docker volume rm: Elimina un volumen que ya no necesites.
  • docker volume inspect: Muestra detalles sobre un volumen específico, como su ubicación y su estado.

Los volúmenes son muy útiles para almacenar datos que necesitas que persistan a lo largo del tiempo, como bases de datos o archivos generados por una aplicación.

  • Loading...
  • Arranca un contenedor de postgres que cumpla con las siguientes características:

    • ejecútalo en modo demonio
    • con el nombre amigable pg-server
    • el password de root será Ad1234
    • crea un volumen para que cualquier dato que el contenedor PostgreSQL escriba en /var/lib/postgresql/data se almacenará en el directorio /bd de tu sistema local.
    • escuchando en el puerto 5432.
    Loading...