Stacked Colorful Cargo Containers.  Industrial and Transportation Background.

Contenedores Linux

¿Qué son LXC?

@digitalteam

Un contenedor de Linux® es un conjunto de uno o más procesos separados del resto del sistema. Todos los archivos que se necesitan para ejecutarlos provienen de una imagen diferente, lo cual significa que los contenedores de Linux son portátiles y uniformes durante todas las etapas: desarrollo, prueba y producción. Esto los hace mucho más rápidos que los canales de desarrollo que necesitan replicar entornos de prueba tradicionales. Debido a su popularidad y facilidad de uso, los contenedores también son una parte importante de la seguridad de TI.

¿Para qué sirven los contenedores?

¿Qué es un contenedor?

 

Imagínese que quiere desarrollar una aplicación. Usted trabaja en una computadora portátil, y su entorno tiene una configuración específica. Las configuraciones pueden variar un poco respecto de las de otros desarrolladores. La aplicación en proceso de desarrollo se basa en esa configuración y depende de archivos, bibliotecas y dependencias específicos. Mientras tanto, su empresa cuenta con entornos de desarrollo y producción que están estandarizados con sus propias configuraciones y sus propios conjuntos de archivos compatibles. Desea emular esos entornos tanto como sea posible hacerlo de forma local, pero sin los gastos que genera tener que recrear los entornos del servidor. Entonces, ¿cómo logra que su aplicación funcione en estos entornos, que pase el control de calidad y que se implemente sin demasiadas dificultades, sin tener que volver a escribirla ni que solucionar muchos problemas? Es simple: con los contenedores.

El contenedor donde se encuentra su aplicación tiene las bibliotecas, las dependencias y los archivos necesarios para que pueda pasar a la etapa de producción sin ninguna consecuencia grave. En realidad, el contenido de una imagen en contenedor puede considerarse como una instalación de una distribución de Linux, ya que incluye paquetes RPM, archivos de configuración, etc. Sin embargo, la distribución de las imágenes en contenedores es mucho más fácil que la instalación de nuevas copias de los sistemas operativos. Si se evitan las crisis, todos estarán felices.

Este es un ejemplo sencillo, pero los contenedores de Linux se pueden aplicar a los problemas de muchas formas diferentes, donde se requiere la máxima portabilidad, capacidad de configuración y aislamiento. El objetivo de los contenedores de Linux es generar desarrollos con mayor rapidez y satisfacer las necesidades comerciales a medida que van surgiendo. En algunos casos, como con la transmisión de datos en tiempo real de Apache Kafka, los contenedores son fundamentales porque son la única forma de proporcionar la escalabilidad que necesita una aplicación. Los contenedores siempre satisfacen la demanda, sin importar la infraestructura en que se encuentren (on-premise, en la nube o en una combinación de ambas). Sin embargo, la elección de la plataforma correcta para los contenedores es tan importante como los contenedores mismos.


¿Y no se trata simplemente de una virtualización?

No exactamente. Considérelo más como un complemento. A continuación, encontrará una forma sencilla de entender ambos aspectos:

  • La virtualización permite que sus sistemas operativos (Windows o Linux) se ejecuten simultáneamente en un solo sistema de hardware.
  • Los contenedores comparten el mismo kernel del sistema operativo y separan los procesos de las aplicaciones del resto del sistema. Por ejemplo, los sistemas Linux ARM ejecutan contenedores de Linux ARM, los sistemas Linux x86 ejecutan contenedores de Linux x86, los sistemas Windows x86 ejecutan contenedores de Windows x86. Los contenedores de Linux son muy portátiles, pero deben ser compatibles con el sistema subyacente.

 

la virtualización frente a los contenedores

 

¿Qué significa esto? Para los principiantes, la virtualización utiliza un hipervisor para emular el hardware que permite que varios sistemas operativos se ejecuten en paralelo. Pero ese hipervisor no es tan ligero como los contenedores. Si tiene recursos limitados con capacidades también limitadas, necesitará aplicaciones ligeras que se puedan implementar de forma masiva en un mismo entorno. Los contenedores de Linux se ejecutan de forma nativa en el sistema operativo y lo comparten con todos los demás contenedores, para que sus aplicaciones y servicios sigan siendo ligeros y se ejecuten rápidamente en paralelo.

Los contenedores de Linux son otro salto evolutivo en nuestra forma de desarrollar, implementar y administrar las aplicaciones. Las imágenes en contenedores de Linux brindan portabilidad y control de versiones, lo cual garantiza que lo que funciona en la computadora portátil del desarrollador también funcione en la etapa de producción. En comparación con las máquinas virtuales, un contenedor de Linux en ejecución consume menos recursos, tiene una interfaz estándar (inicio, interrupción, variables del entorno, etc.), mantiene el aislamiento de las aplicaciones y se gestiona con mayor facilidad como parte de una aplicación más grande (varios contenedores). Además, las aplicaciones en múltiples contenedores se pueden organizar en distintas nubes.

¿En qué consiste el proyecto de contenedores de Linux?

El proyecto de contenedores de Linux (LXC) consiste en una plataforma de contenedores open source que proporciona un conjunto de herramientas, plantillas, bibliotecas y enlaces entre lenguajes. El LXC cuenta con una interfaz de línea de comandos sencilla que mejora la experiencia del usuario al utilizar los contenedores.

Asimismo, el LXC ofrece un entorno de virtualización a nivel del sistema operativo que puede instalarse en varios sistemas basados en Linux. Su distribución de Linux puede ofrecerlo a través de su repositorio de paquetes.

Más de blogs