Práctica: LXC - Docker
En esta práctica vas a desplegar dos sitios web en tu VPS usando las dos formas de virtualización en contenedores que hemos estudiado: una web estática en un contenedor de sistema LXC y la aplicación MediaWiki en contenedores de aplicación Docker. En los dos casos usarás nginx instalado en el host como proxy inverso para acceder a los contenedores con HTTPS.
Ejercicio 1: Servidor web en un contenedor LXC
- Crea un contenedor LXC con Debian llamado
web. Configura su arranque automático y limita su uso a 512 MB de memoria y a una sola CPU. - Instala un servidor web en el contenedor.
- Crea en el host el directorio
/srv/wwwcon un ficheroindex.htmldonde aparezca tu nombre, y móntalo en el directorio/var/www/htmldel contenedor. - Configura el proxy inverso
nginxdel VPS para acceder al contenedor, usando su dirección IP en la redlxcbr0, con HTTPS y el nombrewww.tudominio.algo. - Modifica el fichero
index.htmlen el host y comprueba que el cambio se ve al momento en la web.
Ejercicio 2: MediaWiki con MariaDB en Docker
- Crea una red definida por el usuario.
- Crea un contenedor con MariaDB configurado para crear una base de datos y un usuario con contraseña. Usa un bind mount para persistir el directorio de datos de la base de datos.
- Crea un contenedor con la versión 1.43 de MediaWiki conectado a la misma red. Guarda en un volumen Docker el directorio de imágenes (
/var/www/html/images). - Realiza la instalación usando la base de datos anterior y pon tu nombre como título de la wiki. Al terminar, descarga el fichero
LocalSettings.php, borra el contenedor de MediaWiki y vuelve a crearlo montando ese fichero con un bind mount en/var/www/html/LocalSettings.php. - Configura el proxy inverso
nginxdel VPS para acceder a la aplicación con HTTPS usando el nombrewiki.tudominio.algo. Escribe un artículo en la wiki y sube una imagen. - Borra los dos contenedores y vuelve a crearlos con los mismos puntos de montaje. Comprueba que el artículo y la imagen siguen existiendo.
Ejercicio 3: Docker Compose y actualización de la aplicación
- Elimina los contenedores del ejercicio anterior. Define un fichero
docker-compose.yamlque describa el mismo escenario: contenedor de MariaDB y contenedor de MediaWiki 1.43, con los mismos datos, imágenes y ficheroLocalSettings.php. - Levanta el escenario y comprueba que la wiki sigue funcionando.
- Actualiza la aplicación a la última versión de MediaWiki: cambia la imagen en el fichero
docker-compose.yaml, vuelve a levantar el escenario y ejecuta dentro del contenedor el script de actualización de la base de datos. Comprueba que la aplicación sigue funcionando.
Ejercicio 4: LXC frente a Docker
Responde: ¿qué diferencias has encontrado entre desplegar la web en el contenedor LXC y la wiki con Docker? Ten en cuenta cómo se instala el software, cómo se actualiza y dónde se guardan los datos en cada caso.