CodeGym /Cursos /Docker SELF /Montaje de volúmenes en contenedores

Montaje de volúmenes en contenedores

Docker SELF
Nivel 19 , Lección 2
Disponible

3.1 Fundamentos del montaje de volúmenes

Montar volúmenes (volumes) en contenedores es una de las funciones clave de Docker, que permite guardar datos fuera de los contenedores, asegurando su almacenamiento duradero y disponibilidad. Los volúmenes pueden ser utilizados para diversos propósitos, incluyendo el almacenamiento de archivos de configuración, bases de datos, logs y otros datos importantes. En esta lectura vamos a ver cómo montar volúmenes en contenedores, y daremos ejemplos prácticos.

Fundamentos del montaje de volúmenes

Los volúmenes, como ya mencionamos, existen independientemente del ciclo de vida de los contenedores. Se almacenan en un directorio especial de la máquina host y pueden ser conectados a cualquier contenedor.

Comando para montar volúmenes

Los volúmenes se montan en contenedores usando los parámetros -v o --mount al iniciar el contenedor.

3.2 Parámetro -v

Ejemplos de uso del parámetro -v

1. Montaje de un volumen en un contenedor

Creación de un volumen y su montaje en un contenedor:

Creación del volumen:

Terminal

docker volume create my_volume

Ejecutar un contenedor con el volumen montado:

Terminal

docker run -d --name my_container -v my_volume:/app nginx

En este ejemplo, el volumen my_volume se monta en el directorio /app del contenedor my_container

2. Montaje de múltiples volúmenes

Puedes montar múltiples volúmenes en un contenedor:

Terminal

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

En este ejemplo, el volumen volume1 se monta en el directorio /app/data, y el volumen volume2 se monta en el directorio /app/logs.

3.3 Parámetro --mount

El parámetro --mount proporciona una forma más detallada de montar volúmenes, con la posibilidad de especificar varios parámetros.

1. Montar un volumen usando --mount

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app nginx

Este ejemplo es similar al ejemplo anterior con -v, pero usa una sintaxis más detallada.

2. Montar con parámetros adicionales

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

En este ejemplo, el volumen se monta en modo solo lectura (readonly).

3.4 Ejemplos prácticos

Ejemplo 1: Uso de volúmenes para una base de datos

Crear y usar un volumen para almacenar datos de la base de datos.

Crear un volumen:

Terminal

docker volume create db_data

Ejecutar contenedor de base de datos montando un volumen:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

En este ejemplo, los datos de la base de datos PostgreSQL se guardan en el volumen db_data.

Ejemplo 2: Uso de volúmenes para archivos de configuración

Crear un volumen para almacenar archivos de configuración y montarlo en un contenedor.

Crear un volumen:

Terminal

docker volume create config_data

Copiar archivos de configuración al volumen:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'datos de configuración' > /app/config.txt"

Ejecutar contenedor usando el volumen para archivos de configuración:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

En este ejemplo, los archivos de configuración se almacenan en el volumen config_data, que se monta en el directorio /app/config del contenedor.

Ejemplo 3: Logs del contenedor

Crear un volumen para almacenar logs de un contenedor y montarlo en el contenedor.

Crear un volumen:

Terminal

docker volume create logs_data

Ejecutar contenedor montando el volumen para logs:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

En este ejemplo, los logs de Nginx se guardan en el volumen logs_data.

3.5 Verificar el contenido de los volúmenes

Puedes verificar el contenido de un volumen montándolo en un contenedor temporal.

Ejemplo

Ejecutando un contenedor temporal con montaje de volumen:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

Este ejemplo mostrará el contenido del volumen my_volume.

Eliminar volúmenes

Eliminar un volumen que ya no se utiliza.

Ejemplo

Eliminar el volumen:

Terminal

docker volume rm my_volume

Si un contenedor está usando el volumen, Docker lanzará un error. Asegúrate de que los contenedores que usan el volumen estén detenidos y eliminados.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION