Buscar

Montar laboratorios Linux rápidos con Docker

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

  1. 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.

Montar laboratorios de Linux rápidos con Docker

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.

Montar laboratorios de Linux rápidos con Docker

Para ver que se han creado los contenedores:

docker ps

Montar laboratorios de Linux rápidos con Docker

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

Montar laboratorios de Linux rápidos con Docker

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!

Montar laboratorios de Linux rápidos con Docker

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.

Montar laboratorios de Linux rápidos con Docker

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