Desarrollador(es) | |
---|---|
Lanzamiento inicial | 6 de agosto de 2008 ( 06-08-2008 ) | [1]
Versión estable | 6.0.0 [2] / 3 de abril de 2024 ( 3 de abril de 2024 ) |
Repositorio |
|
Escrito en | C , Concha |
Sistema operativo | Linux |
Plataforma | x86 , IA-64 , PowerPC , SPARC , Itanium , ARM |
Tipo | Virtualización a nivel de sistema operativo |
Licencia | GNU LGPL v.2.1 (algunos componentes bajo GNU GPL v2 y BSD ) |
Sitio web | linuxcontainers.org |
Linux Containers ( LXC ) es un método de virtualización a nivel de sistema operativo para ejecutar múltiples sistemas Linux aislados (contenedores) en un host de control utilizando un único kernel Linux.
El kernel de Linux proporciona la funcionalidad cgroups que permite la limitación y priorización de recursos (CPU, memoria, bloque de E/S, red, etc.) sin la necesidad de iniciar ninguna máquina virtual , y también la funcionalidad de aislamiento de espacio de nombres que permite el aislamiento completo de la vista de una aplicación del entorno operativo, incluidos árboles de procesos , redes , identificaciones de usuario y sistemas de archivos montados . [3]
LXC combina los cgroups del núcleo y el soporte para espacios de nombres aislados para proporcionar un entorno aislado para las aplicaciones. [4] Las primeras versiones de Docker usaban LXC como el controlador de ejecución del contenedor, [4] aunque LXC se hizo opcional en la v0.9 y el soporte se eliminó en Docker v1.10. [5] [6]
LXC fue desarrollado inicialmente por IBM , como parte de una colaboración entre varias partes que buscaban agregar espacios de nombres al kernel. [7] Proporciona virtualización a nivel de sistema operativo a través de un entorno virtual que tiene su propio proceso y espacio de red, en lugar de crear una máquina virtual completa . LXC se basa en la funcionalidad cgroups del kernel de Linux [8] que se lanzó en la versión 2.6.24. También se basa en otros tipos de funcionalidad de aislamiento de espacios de nombres, que se desarrollaron e integraron en el kernel principal de Linux.
Originalmente, los contenedores LXC no eran tan seguros como otros métodos de virtualización a nivel de SO como OpenVZ : en los núcleos Linux anteriores a la versión 3.8, el usuario root del sistema invitado podía ejecutar código arbitrario en el sistema host con privilegios de root, tal como lo pueden hacer en las cárceles chroot . [9] A partir de la versión LXC 1.0, es posible ejecutar contenedores como usuarios normales en el host utilizando "contenedores sin privilegios". [10] Los contenedores sin privilegios están más limitados en el sentido de que no pueden acceder al hardware directamente. Sin embargo, incluso los contenedores privilegiados deberían proporcionar un aislamiento adecuado en el modelo de seguridad LXC 1.0, si se configuran correctamente. [10]
LXC es similar a otras tecnologías de virtualización a nivel de SO en Linux como OpenVZ y Linux-VServer , así como a las de otros sistemas operativos como FreeBSD jails , AIX Workload Partitions y Solaris Containers . A diferencia de OpenVZ, LXC funciona en el kernel de Linux original, por lo que no es necesario aplicar parches adicionales a las fuentes del kernel. La versión 1 de LXC, que se lanzó el 20 de febrero de 2014 como una versión con soporte a largo plazo, recibió soporte durante cinco años. [11] LXC 4.0 recibirá soporte hasta el 1 de junio de 2025 y LXC 5.0 hasta el 1 de junio de 2027. [12]
LXD es un gestor de contenedores alternativo de Linux, escrito en Go . Está construido sobre LXC y tiene como objetivo proporcionar una mejor experiencia de usuario. [13] Es un hipervisor de contenedores que proporciona una API para gestionar contenedores LXC. [14] El proyecto LXD se inició en 2015 y fue patrocinado desde el principio por Canonical Ltd. , la empresa detrás de Ubuntu . El 4 de julio de 2023, el proyecto LinuxContainers anunció que Canonical había decidido hacerse cargo del proyecto LXD, pero se realizó una bifurcación llamada Incus. [15] [16] El 25 de agosto de 2023, la versión 5.17 de LXD se lanzó oficialmente bajo el control de Canonical, proporcionando soporte para las capacidades de delegación de OpenZFS 2.2. [17]
Sin embargo, al menos en Ubuntu, nuestros contenedores predeterminados se entregan con lo que creemos que es una configuración bastante buena tanto del acceso a cgroup como de un amplio perfil de apparmor que evita todos los ataques de los que tenemos conocimiento. [...] LXC ya no se ejecuta como root, por lo que incluso si un atacante logra escapar del contenedor, se encontrará con los privilegios de un usuario normal en el host