Montar laboratorios de Linux rápidos con Docker
En el día a día de un administrador de sistemas es muy frecuente necesitar montar laboratorios. Muchas veces optamos por desplegar VM o máquinas virtuales pero en algunos casos podemos aprovechar las maravillas de Docker para desplegar un entorno para hacer una prueba rápida. En este post veremos cómo usar Docker para crear un laboratorio de máquinas Linux de forma rápida y eficiente, ideal para entornos de laboratorio o formaciones.
¿Por qué Docker para laboratorios Linux?
Docker permite levantar contenedores ligeros en segundos, con la posibilidad de personalizarlos, conectarlos en red y descartar cambios fácilmente. Esto lo convierte en una opción ideal frente a entornos más pesados como máquinas virtuales.
Muchas veces durante un curso o formación necesitamos explicar algún concepto para el que necesitaríamos montar toda una VM. Mediante Docker podemos desplegarla de forma rápida, tanto nosotros como los alumnos.
Requisitos previos
- Tener Docker instalado:
- En Windows: Usa Docker Desktop. (https://www.docker.com/products/docker-desktop/)
- En AlmaLinux:
sudo dnf update && sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Paso 1: Crear una red personalizada
Para conectar los contenedores entre sí y asignarles IPs estáticas:
docker network create --subnet=192.168.100.0/24 labnet
Esto crea una red llamada labnet con el rango de IP 192.168.100.0/24.
Paso 2: Levantar los contenedores Linux
Usaremos AlmaLinux como ejemplo
docker run -d --name linux1 --net labnet --ip 192.168.100.101 -h linux1 -it almalinux
docker run -d --name linux2 --net labnet --ip 192.168.100.102 -h linux2 -it almalinux
docker run -d --name linux3 --net labnet --ip 192.168.100.103 -h linux3 -it almalinux
--net labnet: Conecta el contenedor a la red personalizada.
--ip: Asigna una IP estática dentro del rango definido.
-h: Define el hostname del contenedor.
Para ver que se han creado los contenedores:
docker ps
Paso 3: Verificar conectividad
Vamos a comprobar que los contenedores están conectados y pueden comunicarse entre ellos:
1. Comprueba la red:
docker network inspect labnet
2. Haz ping entre contenedores:
docker exec -it linux1 ping 192.168.100.102
Paso 4: Acceder a la consola de los contenedores
Una vez creados los contenedores, puedes acceder a la consola Linux de cada uno para realizar configuraciones o pruebas. El comando básico para ello es:
docker exec -it <nombre_contenedor> bash
Por ejemplo, para entrar en la consola del contenedor linux1:
docker exec -it linux1 bash
Esto te permitirá interactuar directamente con el sistema operativo Linux dentro del contenedor como si fuera una máquina física. ¡No hace falta ni configurar SSH!
Para salir de la consola y volver a tu terminal principal, usa el comando:
exit
Este comando cerrará tu sesión en el contenedor pero no detendrá el contenedor.
Con este simple comando, tienes acceso directo a cada uno de tus contenedores para realizar las configuraciones necesarias o solucionar problemas en tu laboratorio.
Bonus1: Automatización con Docker Compose
Para levantar todo el laboratorio de una sola vez:
Archivo docker-compose.yml:
version: '3.9'
networks:
labnet:
driver: bridge
ipam:
config:
- subnet: 192.168.100.0/24
services:
linux1:
image: almalinux
container_name: linux1
hostname: linux1
networks:
labnet:
ipv4_address: 192.168.100.101
tty: true
stdin_open: true
linux2:
image: almalinux
container_name: linux2
hostname: linux2
networks:
labnet:
ipv4_address: 192.168.100.102
tty: true
stdin_open: true
linux3:
image: almalinux
container_name: linux3
hostname: linux3
networks:
labnet:
ipv4_address: 192.168.100.103
tty: true
stdin_open: true
Ejecuta:
docker-compose up -d
El autor de este post es: Pol Padrisa
No hay comentarios:
Publicar un comentario