CodeGym /Cursos /Docker SELF /Uso de binds

Uso de binds

Docker SELF
Nivel 19 , Lección 4
Disponible

5.1 Idea de los directorios vinculados (bind mounts)

Montar directorios del host en contenedores usando directorios vinculados (bind mounts) es una función poderosa de Docker que permite a los contenedores usar directamente archivos y directorios que están en el sistema host. Esto es especialmente útil para desarrollo, pruebas y configuración, cuando necesitas usar archivos locales sin copiarlos al contenedor. En esta lección veremos cómo usar los directorios vinculados, daremos ejemplos y compartiremos las mejores prácticas.

Los directorios vinculados permiten montar directorios o archivos específicos del sistema host en contenedores. Esto es diferente de los volúmenes, que son gestionados por Docker y almacenados en un directorio especial.

Ventajas de usar directorios vinculados

  1. Acceso directo a los archivos del host: Los contenedores pueden usar y modificar directamente los archivos que están en el host.
  2. Comodidad para el desarrollo: Los desarrolladores pueden modificar archivos en el host y ver estos cambios en los contenedores en tiempo real.
  3. Flexibilidad: Cualquier directorio en el host puede ser montado en un contenedor.

Comando para montar directorios vinculados

Los directorios vinculados se montan usando los parámetros -v o --mount al iniciar el contenedor.

5.2 Ejemplos de uso del parámetro -v

1. Montar un directorio del host en el contenedor

Un ejemplo simple de montar un directorio del host en el contenedor:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

En este ejemplo, el directorio /path/on/host en el host se monta en el directorio /path/in/container dentro del contenedor nginx.

2. Montar un archivo del host en el contenedor

También puedes montar archivos individuales:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

En este ejemplo, el archivo de configuración config.conf en el host se monta como el archivo de configuración nginx.conf dentro del contenedor.

5.3 Ejemplos de uso del parámetro --mount

El parámetro --mount proporciona una forma más detallada de montar directorios vinculados con la capacidad de especificar diferentes parámetros.

1. Montar un directorio usando --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

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

2. Montar en modo solo lectura

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

En este ejemplo, el directorio se monta en modo solo lectura, lo que previene cambios en los archivos dentro del contenedor.

5.4 Ejemplos prácticos

Para desarrollar una aplicación web puedes montar un directorio con el código fuente del host en un contenedor.

Creación de un directorio con el código fuente en el host:

Terminal

mkdir -p ~/my_web_app
echo "¡Hola, Mundo!" > ~/my_web_app/index.html

Ejecutar un contenedor montando un directorio:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Ahora cualquier cambio en el directorio ~/my_web_app en el host se reflejará inmediatamente en el contenedor.

Ejemplo 2: Uso de archivos de configuración

Puedes montar archivos de configuración desde un directorio en el host al contenedor.

Creación de un archivo de configuración en el host:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Ejecutar un contenedor montando un archivo de configuración:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

En este ejemplo, el archivo de configuración de Nginx en el host se utiliza dentro del contenedor.

5.5 Verificación de directorios y archivos montados

Puedes verificar el contenido de los directorios y archivos montados utilizando el comando docker exec para ejecutar comandos dentro del contenedor.

Ejemplo

Verificar el contenido de un directorio:

Terminal

docker exec -it my_container ls /path/in/container

Verificar el contenido de un archivo:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Eliminar directorios vinculados

Los directorios vinculados no son gestionados directamente por Docker, por lo que su eliminación ocurre a nivel del sistema de archivos del host.

Ejemplo

Eliminar un directorio vinculado en el host:

Terminal

rm -r /path/on/host
1
Опрос
Gestión de datos en Docker,  19 уровень,  4 лекция
недоступен
Gestión de datos en Docker
Gestión de datos en Docker
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION