LXC ( Contenedores de Linux ) 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 solo kernel de Linux.
Desarrollador (es) | |
---|---|
Versión inicial | 6 de agosto de 2008 [1] |
Lanzamiento estable | 4.0.6 / 12 de enero de 2021 [2] |
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 |
El kernel de Linux proporciona la funcionalidad cgroups que permite la limitación y priorización de recursos (CPU, memoria, E / S de bloque, red, etc.) sin la necesidad de iniciar ninguna máquina virtual , y también la funcionalidad de aislamiento del espacio de nombres que permite el aislamiento completo de un vista de la aplicación del entorno operativo, incluidos árboles de procesos , redes , ID de usuario y 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. Las primeras versiones de Docker usaban LXC como el controlador de ejecución del contenedor, aunque LXC se hizo opcional en v0.9 y el soporte se eliminó en Docker v1.10. [4] [5]
Descripción general
LXC 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 que se lanzó en la versión 2.6.24. También se basa en otros tipos de funciones de aislamiento de espacios de nombres, que se desarrollaron e integraron 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 3.8, el usuario root del sistema invitado podía ejecutar código arbitrario en el sistema host con privilegios de root, al igual que en chroot. cárceles. [6] A partir de la versión LXC 1.0, es posible ejecutar contenedores como usuarios habituales en el host utilizando "contenedores sin privilegios". [7] Los contenedores sin privilegios son más limitados porque 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. [7]
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 las jaulas FreeBSD , las particiones de carga de trabajo AIX y los contenedores Solaris . A diferencia de OpenVZ, LXC funciona en el kernel básico de Linux y no requiere la aplicación de parches adicionales a las fuentes del kernel. La versión 1 de LXC, que se publicó el 20 de febrero de 2014, es una versión compatible a largo plazo y está destinada a ser compatible durante cinco años. [8] LXC 2.0 y 3.0 son versiones de soporte a largo plazo: LXC 2.0 será compatible hasta el 1 de junio de 2021; LXC 3.0 será compatible hasta el 1 de junio de 2023. [9]
LXD
LXD es un administrador de contenedores del sistema, básicamente una alternativa a las herramientas de LXC, no una "reescritura de LXC". De hecho, se está construyendo sobre LXC para proporcionar una nueva y mejor experiencia de usuario ". [10]
Ver también
- Iniciativa de contenedor abierto
- Container Linux (anteriormente CoreOS Linux)
- Docker , un proyecto que automatiza la implementación de aplicaciones dentro de contenedores de software
- Apache Mesos , una plataforma de gestión de clústeres a gran escala 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 , usa LXC para ejecutar aplicaciones de Android en otras distribuciones de Linux
Referencias
- ^ "LXC - Contenedores de Linux" . linuxcontainers.org . Consultado el 10 de noviembre de 2014 .
- ^ "Lanzamientos" . Github . Consultado el 4 de septiembre de 2019 .
- ^ Rami Rosen (mayo de 2013). "Gestión de recursos: cgroups y espacios de nombres del kernel de Linux" (PDF) . cs.ucsb.edu . Consultado el 11 de febrero de 2015 .
- ^ "Docker 0.9: introducción de controladores de ejecución y libcontainer - Blog de Docker" . Blog de Docker . 2014-03-10 . Consultado el 9 de mayo de 2018 .
- ^ "Notas de la versión de Docker Engine - 1.10.0 (04/02/2016)" . 2016-02-04 . Consultado el 6 de octubre de 2020 .
- ^ Marco, d'Itri (2011). "Evadir los contenedores de Linux" . Archivado desde el original el 9 de enero de 2014 . Consultado el 12 de febrero de 2014 .
- ^ a b Graber, Stéphane (1 de enero de 2014). "LXC 1.0: Funciones de seguridad [6/10]" . Consultado el 12 de febrero de 2014 .
Sin embargo, al menos en Ubuntu, nuestros contenedores predeterminados se envían con lo que creemos que es una configuración bastante buena tanto del acceso a cgroup como de un extenso perfil de apariencia que evita todos los ataques de los que somos conscientes. [...] 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.
- ^ Stéphane Graber (20 de diciembre de 2013). "LXC 1.0: Tu primer contenedor de Ubuntu" . Stgraber.org . Consultado el 23 de febrero de 2014 .
- ^ "Contenedores Linux - LXC" . linuxcontainers.org . Consultado el 2 de marzo de 2021 .
- ^ "Contenedores Linux - LXD - Introducción" . linuxcontainers.org . Consultado el 14 de abril de 2020 .
enlaces externos
- Sitio web oficial yrepositorio de código fuenteenGitHub
- Artículo de IBM developerworks sobre LXC
- "Evadiendo los contenedores de Linux" por Marco D'Itri
- Presentación sobre cgroups y namespaces, la tecnología subyacente de los contenedores de Linux, por Rami Rosen
- Presentación sobre contenedores de Linux y la nube del futuro, por Rami Rosen
- LXC: instalar y configurar los contenedores de Linux
- LSS: contenedores seguros de Linux (LWN.net)
- Introducción a los contenedores de Linux
- LXC en Android en YouTube , abril de 2013