Ejercicios
Ejercicios para repasar
Vamos a trabajar con volúmenes docker:
- Crea un volumen docker que se llame
miweb
. - Crea un contenedor desde la imagen
php:7.4-apache
donde montes en el directorio/var/www/html
(que sabemos que es el DocuemntRoot del servidor que nos ofrece esa imagen) el volumen docker que has creado. - Utiliza el comando
docker cp
para copiar un ficheroindex.html
en el directorio/var/www/html
. - Accede al contenedor desde el navegador para ver la información ofrecida por el fichero
index.html
. - Borra el contenedor
- Crea un nuevo contenedor y monta el mismo volumen como en el ejercicio anterior.
- Accede al contenedor desde el navegador para ver la información ofrecida por el fichero
index.html
. ¿Seguía existiendo ese fichero?
Vamos a trabajar con bind mount:
- Crea un directorio en tu host y dentro crea un fichero
index.html
. - Crea un contenedor desde la imagen
php:7.4-apache
donde montes en el directorio/var/www/html
el directorio que has creado por medio debind mount
. - Accede al contenedor desde el navegador para ver la información ofrecida por el fichero
index.html
. - Modifica el contenido del fichero
index.html
en tu host y comprueba que al refrescar la página ofrecida por el contenedor, el contenido ha cambiado. - Borra el contenedor
- Crea un nuevo contenedor y monta el mismo directorio como en el ejercicio anterior.
- Accede al contenedor desde el navegador para ver la información ofrecida por el fichero
index.html
. ¿Se sigue viendo el mismo contenido?
Ejercicios para entregar
Entrega uno de estos dos ejercicios (si estás muy aburrido puedes entregar los dos):
Creación y uso de volúmenes
- Crear los siguientes volúmenes con la orden
docker volume
: volumen_datos y volumen_web. - Una vez creados estos contenedores:
- Arrancar un contenedor llamado
c1
sobre la imagenphp:7.4-apache
que monte el volumen_web en la ruta/var/www/html
y que sea accesible en el puerto 8080. - Arrancar un contenedor llamado
c2
sobre la imagenmariadb
que monte el volumen_datos en la ruta/var/lib/mysql
y cuya contraseña deroot
seaadmin
.
- Arrancar un contenedor llamado
- Intenta borrar el volumen volumen_datos, para ello tendrás que parar y borrar el contenedor
c2
y tras ello borrar el volumen. - Copia o crea un fichero
index.html
al contenedorc1
, accede al contenedor y comprueba que se está visualizando. - Borra el contenedor
c1
y crea un contenedorc3
con las mismas características quec1
pero sirviendo en el puerto 8081.
Deberás entregar los siguientes pantallazos comprimidos en un zip o en un documento pdf:
- Pantallazo donde se puedan ver los dos volúmenes creados.
- Pantallazo con la orden correspondiente para arrancar el contenedor c1 usando el volumen_web.
- Pantallazo con la orden correspondiente para arrancar el contenedor c2 usando el volumen_datos.
- Pantallazo donde se vea el proceso para poder borrar el volumen_datos.
- Pantallazo donde se vea el borrado de
c1
y la creación dec3
. - Pantallazo donde se vea el acceso al contenedor
c3
.
Bind mount para compartir datos
-
Crea una carpeta llamada
saludo
y dentro de ella crea un fichero llamadoindex.html
con el siguiente contenido (Deberás sustituir ese XXXXXx por tu nombre.):<h1>HOLA SOY XXXXXX</h1>
- Una vez hecho esto arrancar dos contenedores basados en la imagen php:7.4-apache que hagan un bind mount de la carpeta
saludo
en la carpeta/var/www/html
del contenedor. Uno de ellos vamos a acceder con el puerto 8181 y el otro con el 8282. Y su nombres seránc1
yc2
. - Modifica el contenido del fichero
~/saludo/index.html
. - Comprueba que puedes seguir accediendo a los contenedores, sin necesidad de reiniciarlos.
Deberás entregar los siguientes pantallazos comprimidos en un zip o en un documento pdf:
- Pantallazo con la orden correspondiente para arrancar el contenedor c1 (puerto 8181) realizando el bind mount solicitado.
- Pantallazo con la orden correspondiente para arrancar el contenedor c2 (puerto 8282) realizando el bind mount solicitado.
- Pantallazo donde se pueda apreciar que accediendo a
c1
se puede ver el contenido deindex.html
. - Pantallazo donde se pueda apreciar que accediendo a
c2
se puede ver el contenido deindex.html
. - Otro dos pantallazos (o uno) donde se vea accediendo a los contenedores después de modificar el fichero
index.html
.