Taller 1: Almacenamiento y redes en Docker
Almacenamiento
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 DocumentRoot del servidor que nos ofrece esa imagen) el volumen docker que has creado. - Utiliza el comando
docker cp
para copiar un ficheroindex.html
(donde aparece tu nombre) 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
(donde aparece tu nombre). - 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?
Redes
Despliegue de Nextcloud + mariadb
Vamos a desplegar la aplicación Nextcloud con una base de datos (NOTA: Para que no te de errores utiliza la imagen mariadb:10.5
). Te puede servir el ejercicio que hemos realizado para desplegar Wordpress. Para ello sigue los siguientes pasos:
- Crea una red de tipo bridge.
- Crea el contenedor de la base de datos conectado a la red que has creado. La base de datos se debe configurar para crear una base de datos y un usuario. Además el contenedor debe utilizar almacenamiento (volúmenes o bind mount) para guardar la información. Puedes seguir la documentación de mariadb o la de PostgreSQL.
- A continuación, siguiendo la documentación de la imagen Nextcloud, crea un contenedor conectado a la misma red, e indica las variables adecuadas para que se configure de forma adecuada y realice la conexión a la base de datos. El contenedor también debe ser persistente usando almacenamiento.
- Accede a la aplicación usando un navegador web.
¿Qué tienes que entregar?
Almacenamiento con volúmenes docker
- Instrucción para crear el volumen docker.
- Instrucción para crear el contenedor.
- Pantallazo accediendo a la página web.
- Instrucción para borrar el contenedor.
- Instrucción para crear de nuevo el contenedor con el volumen y pantallazo accediendo de nuevo a la página.
Almacenamiento con bind mount
- Instrucción para crear el contenedor.
- Pantallazo accediendo a la página web.
- Pantallazo accediendo a la página web, después de cambiar el fichero
index.html
en tu host.
Redes
- Instrucción para crear la red
- Instrucción para crear el contenedor de base de datos.
- Instrucción para crear el contenedor de Nextcloud.
- Pantallazos accediendo a Nextcloud para comprobar que funciona de manera correcta.