Ejercicio 3: Almacenamiento y redes en Docker
En este ejercicio vas a persistir datos de contenedores usando volúmenes Docker y bind mounts, y a gestionar redes definidas por el usuario para aislar contenedores y obtener resolución DNS entre ellos. Todas las operaciones se realizan desde la línea de comandos.
Ejercicio 1: Volúmenes Docker
- Crea un volumen Docker llamado
miweb. - Crea un contenedor desde la imagen
php:7.4-apachemontando el volumen en el directorio/var/www/html. - Copia un fichero
index.htmlcon tu nombre al directorio/var/www/htmldel contenedor usandodocker cp. Accede desde el navegador y comprueba que se muestra correctamente. - Borra el contenedor. Crea un nuevo contenedor montando el mismo volumen en el mismo directorio. ¿Sigue existiendo el fichero
index.html? ¿Por qué?
Ejercicio 2: Bind mount
- Crea un directorio en el host y añade dentro un fichero
index.htmlcon tu nombre. - Crea un contenedor desde la imagen
php:7.4-apachemontando ese directorio en/var/www/htmlmediante bind mount. Accede desde el navegador y comprueba que se muestra el fichero. - Modifica el fichero
index.htmlen el host y recarga la página del navegador. ¿Ha cambiado el contenido servido? ¿Por qué? - Borra el contenedor. Crea uno nuevo montando el mismo directorio. ¿Se sigue viendo el mismo contenido?
Ejercicio 3: Diferencia entre volúmenes y bind mounts
Responde: ¿qué diferencia hay entre un volumen Docker y un bind mount? ¿En qué situaciones usarías cada uno?
Ejercicio 4: Redes definidas por el usuario
- Lista las redes Docker disponibles en tu sistema. Identifica los tres tipos predefinidos (
bridge,host,none) y explica brevemente para qué sirve cada uno. - Crea una red de tipo bridge definida por el usuario llamada
red1. - Crea un contenedor con la imagen
httpd:2.4conectado ared1, mapeando el puerto 8080 del host. - Crea un segundo contenedor interactivo desde la imagen
debianconectado también ared1. Desde este contenedor, comprueba que puedes resolver el nombre del primer contenedor por DNS. ¿Qué dirección IP devuelve? - Responde: ¿por qué en la red bridge por defecto no hay resolución DNS por nombre de contenedor, pero sí en las redes definidas por el usuario?