Las máquinas virtuales y los contenedores sirven para lo mismo: aislar aplicaciones para que no interfieran entre sí. La diferencia está en qué comparten.
Máquinas virtuales
Cada máquina virtual incluye su propio sistema operativo completo (el «sistema invitado»), además de la aplicación y sus librerías. Un programa llamado hipervisor reparte el hardware del servidor físico entre todas ellas.
- Capas, de abajo hacia arriba: infraestructura → hipervisor → sistema operativo invitado → librerías → aplicación.
- Ejemplos: VirtualBox, VMware, Proxmox, Hyper-V.
Contenedores
Los contenedores comparten el núcleo del sistema operativo anfitrión. Cada uno lleva solo la aplicación y sus librerías, y un motor de contenedores como Docker se encarga de aislarlos.
- Capas, de abajo hacia arriba: infraestructura → sistema operativo anfitrión → motor de contenedores → librerías → aplicación.
- Ejemplos: Docker, Podman, containerd.
En la práctica
| Máquina virtual | Contenedor | |
|---|---|---|
| Arranque | Minutos | Segundos |
| Tamaño típico | Gigabytes | Megabytes |
| Aislamiento | Muy fuerte (núcleo propio) | Por proceso (núcleo común) |
| Ideal para | Otros sistemas operativos | Apps y microservicios |