La contenedorización ( virtualización a nivel del sistema operativo, virtualización de contenedores, virtualización de zonas [1] ) es un método de virtualización en el que el núcleo del sistema operativo mantiene varias instancias de espacio de usuario aisladas en lugar de una. Estas instancias (comúnmente denominadas contenedores o zonas ) son idénticas en términos de los procesos que se ejecutan en ellas a una única instancia del sistema operativo. Para los sistemas basados en Unix , esta tecnología es similar a una implementación mejorada del mecanismo chroot . El núcleo proporciona un aislamiento completo de los contenedores, por lo que los programas de diferentes contenedores no pueden afectarse entre sí.
A diferencia de la virtualización de hardware , que emula un entorno de hardware y puede ejecutar una amplia gama de sistemas operativos invitados , un contenedor solo puede ejecutar una instancia de sistema operativo con el mismo kernel que el sistema operativo host (todos los contenedores host comparten un kernel común). Al mismo tiempo, durante la creación de contenedores, no hay gastos generales de recursos adicionales para emular el hardware virtual y lanzar una instancia completa del sistema operativo, que son típicos de la virtualización de hardware.
Hay implementaciones enfocadas en crear instancias casi completas de sistemas operativos ( Contenedores Solaris , Contenedores Virtuozzo , OpenVZ ), y opciones que se enfocan en aislar servicios individuales con un entorno operativo mínimo ( jail , Docker ).
Mecanismo | Sistema operativo | Licencia | Fecha de lanzamiento | Peculiaridades | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Aislamiento del sistema de archivos | Cuotas de espacio de almacenamiento | límites de E/S | Límites de memoria | Cuotas de CPU | Aislamiento de red | Migración en vivo | ||||
chroot | integrado en la mayoría de los sistemas operativos similares a Unix | dependiendo de la licencia del sistema operativo | mil novecientos ochenta y dos | Parcialmente | No | No | No | No | No | No |
Estibador | Linux , FreeBSD , Windows , mac OS | apache 2.0 | 2013 | Sí | Sí | Sí | Sí | Sí | Sí | No |
Contenedores Solaris | Solaris , OpenSolaris | CDDL | 01/2005 | Sí | Sí | No | Sí | Sí | sí [2] | No [3] |
vps gratuitos | linux | GNU GPL | - | Sí | Sí | No | Sí | Sí | Sí | No |
Cuentas virtuales iCore | Windows XP | propiedad | 06/2008 | Sí | Sí | No | No | No | Sí | No |
Linux-VServer |
linux | GNU GPL v.2 | - | Sí | Sí | Sí | Sí | Sí | sí [4] | No |
LXC |
linux | GNU GPL v.2 | 2008 | Sí | No | Sí | Sí | Sí | Sí | No |
OpenVZ | linux | GNU GPL v.2 | 2005 | Sí | Sí | sí [5] | Sí | Sí | sí [6] | Sí |
Contenedores Virtuozzo | linux , microsoft windows | propiedad | - | Sí | Sí | sí [7] | Sí | Sí | sí [6] | Sí |
Cárcel de FreeBSD | FreeBSD | BSD | 03/2000 | Sí | Sí | No | Sí | Parcialmente | Sí | No |
sysjail | OpenBSD , NetBSD | BSD | - | Sí | No | No | No | No | Sí | No |
WPAR | AIX | propiedad | 10/2007 | Sí | Sí | Sí | Sí | Sí | sí [8] | sí [9] |