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