Title: Conceptos de contenedores vs máquinas virtuales
Course: 2025 - LISI - Virtualizacion 2-2 > Section: Contenedores y Docker

🧠 Unidad 3: Conceptos de Contenedores vs Máquinas Virtuales

🎯 Objetivo del tema

Comprender las diferencias fundamentales entre los contenedores y las máquinas virtuales (VMs), sus arquitecturas, casos de uso, ventajas y limitaciones, para tomar decisiones informadas en entornos de virtualización y despliegue de aplicaciones.

🧱 ¿Qué es una Máquina Virtual?

Una máquina virtual es una emulación completa de un sistema físico. Incluye su propio sistema operativo, kernel, y recursos virtualizados como CPU, memoria, disco y red.

🔧 Arquitectura de una VM:

Hardware físico
└── Hipervisor (VirtualBox, VMware, KVM)
    └── Máquina Virtual
        └── Sistema Operativo invitado
            └── Aplicaciones


✅ Ventajas:

- Aislamiento completo.
- Soporte para múltiples sistemas operativos.
- Seguridad robusta.

❌ Desventajas:

- Alto consumo de recursos.
- Tiempo de arranque más lento.
- Gestión más compleja.

📦 ¿Qué es un Contenedor?

Un contenedor es una unidad ligera que empaqueta una aplicación junto con sus dependencias, pero comparte el kernel del sistema operativo anfitrión.

🔧 Arquitectura de un contenedor:

Hardware físico
└── Sistema Operativo anfitrión
    └── Motor de contenedores (Docker, Podman)
        └── Contenedor
            └── Aplicación + dependencias


✅ Ventajas:

- Ligereza y rapidez.
- Arranque casi instantáneo.
- Ideal para microservicios y DevOps.
- Fácil portabilidad.

❌ Desventajas:

- Menor aislamiento que una VM.
- Depende del kernel del host.
- No apto para ejecutar sistemas operativos completos.

⚖️ Comparación directa

Característica | Máquina Virtual | Contenedor
Aislamiento | Completo | Parcial (comparten kernel)
Recursos | Alto consumo | Bajo consumo
Tiempo de arranque | Lento | Rápido
Portabilidad | Limitada | Alta
Seguridad | Alta | Moderada
Uso típico | Infraestructura, entornos mixtos | Microservicios, CI/CD, DevOps

🧪 Ejemplo práctico

- VM: Instalar Debian en VirtualBox para simular un servidor completo.
- Contenedor: Usar Docker para ejecutar un servidor web Apache con solo un comando:
docker run -d -p 80:80 httpd

📌 Conclusión

Los contenedores y las máquinas virtuales no compiten, sino que se complementan. Las VMs son ideales para entornos donde se requiere aislamiento completo y soporte para múltiples sistemas operativos. Los contenedores son perfectos para despliegues rápidos, escalables y ligeros, especialmente en arquitecturas modernas como microservicios.