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 núcleo Linux.
El kernel de Linux proporciona la funcionalidad cgroups que permite limitar y priorizar recursos (CPU, memoria, E/S de bloques, red, etc.) sin necesidad de iniciar ninguna máquina virtual , y también la funcionalidad de aislamiento de espacios de nombres que permite el aislamiento completo de la vista de una aplicación del entorno operativo, incluidos los árboles de procesos , la red , los ID de usuario y los sistemas de archivos montados . [ 3 ]
LXC combina los cgroups del kernel 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 controlador de ejecución de contenedores, [ 4 ] aunque LXC fue reemplazado como predeterminado en la versión 0.9.0 [ 5 ] [ 6 ] y fue obsoleto en 1.8.0, [ 7 ] antes de que el controlador fuera eliminado en 1.10.0. [ 8 ]
Descripción general
LXC fue desarrollado inicialmente por IBM , como parte de una colaboración entre varias partes que buscaban agregar espacios de nombres al núcleo. [ 9 ] Proporciona virtualización a nivel de sistema operativo a través de un entorno virtual que tiene su propio espacio de procesos y red, en lugar de crear una máquina virtual completa . LXC se basa en la funcionalidad cgroups del núcleo Linux [ 10 ] 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 fueron desarrollados e integrados en el núcleo principal de Linux.
Seguridad
Originalmente, los contenedores LXC no eran tan seguros como otros métodos de virtualización a nivel de sistema operativo, como OpenVZ : en los kernels de Linux anteriores a la versión 3.8, el usuario root del sistema invitado podía ejecutar código arbitrario en el sistema anfitrión con privilegios de root, al igual que en los entornos chroot . [ 11 ] A partir de la versión LXC 1.0, es posible ejecutar contenedores como usuarios normales en el anfitrión mediante "contenedores sin privilegios". [ 12 ] Los contenedores sin privilegios son más limitados, ya que no pueden acceder al hardware directamente. Sin embargo, incluso los contenedores con privilegios deberían proporcionar un aislamiento adecuado en el modelo de seguridad de LXC 1.0, si se configuran correctamente. [ 12 ]
Alternativas
LXC es similar a otras tecnologías de virtualización a nivel de sistema operativo 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 estándar, sin necesidad de aplicar parches adicionales al código fuente del kernel. La versión 1 de LXC, lanzada el 20 de febrero de 2014 como versión con soporte a largo plazo, tuvo soporte durante cinco años. [ 13 ] La versión 4.0 de LXC tuvo soporte hasta el 1 de junio de 2025 y LXC 5.0 hasta el 1 de junio de 2027. [ 14 ]
LXD
LXD es un gestor de contenedores Linux alternativo, escrito en Go . Está construido sobre LXC y tiene como objetivo proporcionar una mejor experiencia de usuario. [ 15 ] Es un hipervisor de contenedores que proporciona una API para gestionar contenedores LXC. [ 16 ] 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 había creado una bifurcación llamada Incus. [ 17 ] [ 18 ] El 25 de agosto de 2023, se lanzó oficialmente la versión 5.17 de LXD bajo el control de Canonical, proporcionando soporte para las capacidades de delegación de OpenZFS 2.2. [ 19 ]
Véase también
- Iniciativa de contenedores abiertos
- Linux para contenedores (anteriormente CoreOS Linux)
- Docker , un proyecto que automatiza el despliegue de aplicaciones dentro de contenedores de software.
- Apache Mesos , una plataforma de gestión de clústeres a gran escala ya descatalogada basada en el aislamiento de contenedores.
- Implementaciones de virtualización a nivel de sistema operativo
- Proxmox Virtual Environment , una plataforma de gestión de virtualización de servidores de código abierto que admite contenedores LXC y KVM.
- Anbox utiliza LXC para ejecutar aplicaciones de Android en otras distribuciones de Linux.
Referencias
- ↑ "Descargas" . Contenedores Linux . Archivado del original el 10/11/2014 . Consultado el 10/11/2014 .
- ↑ "LXC 6.0.6 LTS" . 27 de febrero de 2026. Consultado el 27 de febrero de 2026 .
- ↑ Rami Rosen (mayo de 2013). "Gestión de recursos: espacios de nombres del kernel de Linux y cgroups" (PDF) . CS . UCSB . Consultado el 11 de febrero de 2015 .
- 1 2 Kenlon, Seth (30 de enero de 2020). "Explorando contenedores Linux simples con lxc" . Red Hat . IBM . Recuperado el 5 de julio de 2023 .
- ↑ "Docker 0.9: introducción de controladores de ejecución y libcontainer" . Blog . Docker. 10 de marzo de 2014. Consultado el 9 de mayo de 2018 .
- ↑ "0.9.0" . Versiones anteriores de Docker Engine . Docker. 10-03-2014 . Consultado el 27-11-2025 .
- ↑ "1.8.0" . Versiones anteriores de Docker Engine . Docker. 11-08-2015 . Consultado el 27-11-2025 .
- ↑ "1.10.0" . Notas de la versión del motor . Docker. 4 de febrero de 2016. Consultado el 6 de octubre de 2020 .
- ↑ Webb, Jordan (13 de septiembre de 2022). "LXC y LXD: una historia de contenedores diferente" . LWN.net . Recuperado el 5 de julio de 2023 .
- ↑ Koutoupis, Petros (27 de agosto de 2018). "Todo lo que necesitas saber sobre los contenedores Linux, parte II: Trabajar con contenedores Linux (LXC)" . Linux Journal . Consultado el 5 de julio de 2023 .
- ↑ Marco, d'Itri (2011). "Evading from linux containers" . BOFH . IT. Archivado del original el 9 de enero de 2014. Recuperado el 12 de febrero de 2014 .
- 1 2 Graber, Stéphane (1 de enero de 2014). "LXC 1.0: Características de seguridad [ 6/10 ] " . Consultado el 12 de febrero de 2014 .
Sin embargo, al menos en Ubuntu, nuestros contenedores predeterminados vienen con lo que consideramos una configuración bastante buena tanto del acceso a cgroup como de un extenso perfil de apparmor que previene 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ía con los privilegios de un usuario normal en el host.
- ↑ Graber, Stéphane (2013-12-20). "LXC 1.0: Tu primer contenedor Ubuntu" . St. Graber . Recuperado el 23 de febrero de 2014 .
- ↑ "LXC" . Contenedores Linux . Consultado el 7 de febrero de 2023 .
- ↑ "Introducción" . LXD . Contenedores Linux . Consultado el 14 de abril de 2020 .
- ↑ Parrott, Thomas. "Introducción a los proyectos LXD" . Ubuntu . Canonical . Consultado el 5 de julio de 2023 .
- ↑ "LXD se ha trasladado a Canonical" . Contenedores Linux . 4 de julio de 2023. Archivado del original el 4 de julio de 2023. Consultado el 5 de julio de 2023 .
- ↑ Rudra, Sourav (5 de julio de 2023). "El proyecto LXD encuentra un nuevo hogar en Canonical" . Es Foss . Recuperado el 5 de julio de 2023 .
- ↑ Parrott, Thomas (25 de agosto de 2023). "LXD 5.17 ha sido lanzado" . Ubuntu . Canonical.
Enlaces externos
- Sitio web oficial
yLxcenGitHub - Artículo de IBM DeveloperWorks sobre LXC
- "Cómo evitar los contenedores Linux" por Marco D'Itri
- Presentación sobre cgroups y espacios de nombres, la tecnología subyacente de los contenedores Linux, a cargo de Rami Rosen.
- Presentación sobre contenedores Linux y el futuro de la nube, a cargo de Rami Rosen.
- LXC : Instalar y configurar los contenedores Linux
- LSS: Contenedores Linux seguros (LWN.net)
- Introducción a los contenedores Linux
- LXC en Android en YouTube , abril de 2013
- Software de virtualización gratuito
- Contenedores Linux
- Contenedores Linux
- Características del kernel de Linux
- Software libre exclusivo para Linux
- Seguridad del sistema operativo
- Software de virtualización para Linux