Tarea 2.1: Contenedores LXC
En esta tarea vas a instalar y gestionar contenedores LXC, configurar sus recursos, conectarlos a distintas redes y construir un escenario de router/NAT con almacenamiento compartido desde el host. Todas las operaciones se realizan desde la línea de comandos.
1. Primeros pasos con LXC
- Instala LXC en tu sistema.
- Crea un contenedor con la última versión de Ubuntu. Lista los contenedores disponibles.
- Inicia el contenedor y comprueba la dirección IP que ha tomado. ¿Tiene conectividad al exterior?
- Sal del contenedor y ejecuta un
apt updatedentro de él sin estar conectado a la consola del contenedor. - Limita el uso de memoria del contenedor a 512 MB y restringe su uso a una sola CPU. Comprueba que los cambios se han aplicado.
2. Red del contenedor
- Comprueba que se ha creado un bridge llamado
lxcbr0al que está conectado el contenedor. - Cambia la configuración del contenedor para desconectarlo de
lxcbr0y conectarlo a otra red NAT con DHCP (por ejemplo a la reddefaultde libvirt). - Inicia el contenedor, comprueba la nueva dirección IP que ha tomado y verifica que sigue teniendo conectividad al exterior.
3. Escenario router/NAT con LXC
- Crea un contenedor llamado router a partir de una plantilla de Debian. Configura su arranque automático.
- Crea un contenedor llamado servidorweb a partir de una plantilla de Ubuntu 24.04. Configura su arranque automático.
- Crea en el host un bridge llamado
br-contenedores(sin usarvirsh), de forma persistente, para que exista al arrancar el host y los contenedores puedan iniciarse automáticamente. Este bridge formará una red aislada entre los contenedores. - Conecta el contenedor router a la una red NAT, que será su red externa, y al bridge
br-contenedores. Si tienes el bridge externobr0de la optativa 1.1, puedes usarlo como red externa. Configura las interfaces de red dentro del contenedor de forma adecuada. - Conecta el contenedor servidorweb únicamente al bridge
br-contenedores. Configura su interfaz de red dentro del contenedor. - Configura el contenedor router para que realice NAT y permita al contenedor servidorweb tener acceso a internet.
- Instala el servidor SSH en ambos contenedores. Crea un usuario sin privilegios y configura el acceso por clave pública/privada. Accede por SSH al contenedor servidorweb desde el host, usando el router como salto (opción
-Jdessh). - Instala un servidor web en el contenedor servidorweb.
- Crea el directorio
/opt/weben el host con un ficheroindex.htmly móntalo en el directorio/var/www/htmldel contenedor servidorweb. - Configura el contenedor router para redirigir el tráfico web que le llega por su red externa al contenedor servidorweb. Comprueba que se puede acceder a la página web desde el host, usando la IP externa del router (o desde otro equipo, si usas
br0), y que al modificarindex.htmlen el host el cambio se refleja inmediatamente.