¿Qué son los contenedores de Linux?

Dos personas en una oficina, apuntando a una pantalla de computadora.

Autores

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

¿Qué son los contenedores de Linux?

Los contenedores de Linux (LXC) son un tipo de contenedor basado en el sistema operativo Linux. Contienen todos los archivos necesarios para ejecutar un proceso o procesos específicos en distintos entornos informáticos y canalizaciones.

Hoy en día, los contenedores de Linux son herramientas vitales en el desarrollo de software moderno, ya que permiten empaquetar fácilmente las aplicaciones junto con todas sus dependencias. Muchas aplicaciones modernas, como Docker, Kubernetes, Red Hat OpenShift, Microsoft Azure y otras, utilizan contenedores de Linux por sus características añadidas de eficiencia, portabilidad y seguridad.

Al igual que el resto de aplicaciones y herramientas de software creadas sobre Linux, los contenedores Linux son de código abierto, lo que significa que su código fuente es libre y está disponible para que cualquiera pueda emplearlo. Los contenedores Linux y sus muchas características son parte de las distribuciones Linux que una comunidad global de desarrolladores mantiene y actualiza.

¿Qué es Linux?

Linux es uno de los sistemas operativos (SO) de código abierto más populares del mundo. Inventado en 1991 por Linus Torvalds, Linux se convirtió rápidamente en una alternativa ampliamente utilizada a los sistemas operativos propietarios, como Windows y macOS. El sistema operativo Linux se basa en el kernel de Linux, un programa informático que brinda a los usuarios control sobre los componentes del sistema informático, como redes, uso de CPU controladores, sistemas de archivos y más.

En los años transcurridos desde su invención, el kernel de Linux se ha vuelto en crítico para las distribuciones de Linux, que son versiones de código abierto del sistema operativo Linux que se lanzan regularmente a los usuarios. Hoy en día, Linux impulsa una amplia gama de dispositivos modernos y aplicaciones y es utilizado por algunas de las mayores empresas de tecnología, software e informática del mundo.  

¿Qué son los contenedores?

Los contenedores son unidades ejecutables de software que contienen código de aplicación junto con las bibliotecas y dependencias de ese código, lo que permite que el código se ejecute en varios ecosistemas. Los contenedores dependen de muchos componentes para su funcionalidad. Por ejemplo, los archivos binarios son componentes clave para la funcionalidad del contenedor, lo que permite que los archivos individuales y su código de aplicación se ejecuten en cualquier entorno informático.

Los contenedores usan una forma de virtualización del sistema operativo en la que las características del kernel del sistema operativo se utilizan para aislar procesos y controlar la cantidad de CPU, memoria y espacio en disco a las que pueden acceder las aplicaciones. Los contenedores son más portátiles y eficientes en recursos que las máquinas virtuales (VM) y se han vuelto esenciales en las aplicaciones modernas nativas de la nube , como Netflix, Spotify, AirBnB y más.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Cómo funcionan los contenedores de Linux?

Los contenedores de Linux ejecutan aplicaciones en entornos aislados en un único sistema host que utiliza Linux como sistema operativo. En el corazón de la funcionalidad del contenedor de Linux se encuentra una línea de comandos, también conocida como shell, que brinda a los usuarios una interfaz basada en texto que controla el sistema Linux.

Contenedores Linux frente a máquinas virtuales (VM)

Los contenedores Linux son similares a las máquinas virtuales (VM) en que ambos son métodos de virtualización ampliamente utilizados que sustentan la computación en la nube y la distribución de la mayoría de las aplicaciones empresariales modernas. Sin embargo, hay algunas diferencias importantes que vale la pena señalar.

Mientras que las máquinas virtuales virtualizan el hardware y la infraestructura de TI, los contenedores Linux virtualizan solo el sistema operativo de un sistema, lo que las convierte en una opción más ligera y portátil para ejecutar aplicaciones. Además, los métodos de virtualización en los que se basan las máquinas virtuales y los contenedores Linux son ligeramente diferentes. En una VM, un componente de software llamado hipervisor proporciona el aislamiento de recursos necesario para la virtualización; en un contenedor Linux, esto se logra a través de una imagen de contenedor.

Cinco características clave de la funcionalidad de contenedores de Linux

Estas cinco características clave de los contenedores de Linux posibilitan su funcionalidad única.

1. Uso compartido del kernel

Las máquinas virtuales deben tener su propio sistema operativo y kernel para funcionar. Sin embargo, los contenedores pueden aprovechar el kernel Linux del sistema operativo host en el que se ejecutan, lo que los hace más livianos y rápidos de iniciar y ejecutar que las máquinas virtuales.

2. Espacios de nombres

El aislamiento de los contenedores de Linux aprovecha una característica del kernel de Linux llamada espacios de nombres del kernel de Linux que permite aislar ciertos recursos para diferentes procesos. Por ejemplo, los espacios de nombres de ID de proceso (espacios de nombres PID) se utilizan para aislar procesos en el mismo contenedor para que no se afecten entre sí.

3. Cgroups

Cgroups, una abreviatura de grupos de control, es una herramienta de gestión de recursos que permite a los usuarios agrupar procesos jerárquicamente y luego controlar a qué recursos tienen acceso. Por ejemplo, los daemons (procesos que controlan los ciclos de vida de los contenedores) frecuentemente son controlados por cgroups.

4. Imágenes de contenedores

Lasimágenes de contenedor son paquetes de software que contienen todo lo necesario para ejecutar una aplicación, incluido el código, el tiempo de ejecución, las bibliotecas del sistema y las herramientas del sistema. Las imágenes de contenedor hacen que las aplicaciones que admiten sean altamente escalables y capaces de ejecutarse en cualquier entorno sin configuración manual.

5. Tiempos de ejecución de contenedores

Los contenedores de tiempo de ejecución son software que permiten que los contenedores funcionen dentro de un sistema host, como Linux. Los tiempos de ejecución del contenedor se emplean para gestionar el ciclo de vida del contenedor. Mediante interfaces de programación de aplicaciones (API) que permiten a las aplicaciones comunicar entre sí, los tiempos de ejecución de contenedores actúan como intermediarios entre un orquestador de contenedores, como Kubernetes, que gestiona la aplicación en contenedores y el sistema anfitrión en el que se ejecuta.

OpenShift 

Vea cómo se ejecutan los contenedores en la nube con OpenShift

Los contenedores facilitan la creación, ejecución y movimiento de aplicaciones entre diferentes entornos. Este video muestra cómo OpenShift on IBM Cloud ayuda a los equipos a gestionar aplicaciones en contenedores de manera eficiente, haciendo que el desarrollo en la nube sea más rápido y confiable.

La evolución de la contenerización

El concepto de contenerización existe desde la década de 1970, cuando Unix introdujo un sistema conocido como chroot. Unix, un sistema operativo popular, permitía a los usuarios controlar recursos de hardware y software en una computadora o dispositivo electrónico. Chroot era único porque permitía el aislamiento de procesos en un sistema, algo que era crítico para las tecnologías de contenedor.

Si bien otras tecnologías (por ejemplo, particiones de carga de trabajo de AIX y FreeBSD jails) han ofrecido un aislamiento de procesos y virtualización de sistemas similares a los de los contenedores en ejecución, ninguna ha logrado un uso tan generalizado. En 2013, la introducción de Docker, una plataforma de gestión de contenedores de código abierto, impulsó el dominio de los contenedores en el ecosistema de aplicaciones modernas, lo que facilitó más que nunca la creación, gestión y despliegue de contenedores.

No se puede exagerar el dominio del mercado de contenedores en el mercado de aplicaciones modernas, especialmente para aplicaciones nativas de la nube y de microservicios. Según un informe reciente, el mercado mundial de contenedores se estimó en 5.850 millones de dólares el año pasado. Se espera que crezca a una tasa de crecimiento anual compuesta (CAGR) del 33 % en los próximos 5 años.1

Contenedores de aplicaciones y contenedores de Linux (LXC)

Los contenedores de aplicación son contenedores que ejecutan procesos y cargas de trabajo únicos, lo que permite a los usuarios crear y eliminar contenedores sin afectar otros procesos o la funcionalidad de la aplicación. Los contenedores de aplicación (y específicamente Docker) fueron críticos para permitir que prosperaran las aplicaciones de las que tantos usuarios dependen hoy en día, como Facebook, MS Word, Zoom y otras. Si bien existen tecnologías de kernel de Linux de código abierto más nuevas, como Ubuntu y system-nspawn, los contenedores de Linux todavía se usan ampliamente y tienen muchos beneficios.

Beneficios de los contenedores de Linux

Como proyecto de código abierto, los contenedores de Linux evolucionan continuamente, moldeados por una comunidad global de desarrolladores que constantemente agregan características y mejoran la funcionalidad y la experiencia del usuario. Estos son algunos de sus beneficios más populares:

  • Uso compartido de recursos: a diferencia de las máquinas virtuales que necesitan otra instancia de sistema operativo separada para funcionar, los contenedores Linux comparten el kernel de un sistema host, lo que los hace más eficientes y portátiles en muchos entornos informáticos.
  • Integración de Linux: debido a su integración con el kernel de Linux, los contenedores Linux permanecen cerca del SO Linux, lo que permite un uso de recursos más eficiente que con otras tecnologías de virtualización, como VM e hipervisores.
  • Aprovisionamiento bajo demanda y escalado automático: los cortos tiempos de arranque y los bajos requisitos de recursos de los contenedores Linux los hacen ideales para el aprovisionamiento bajo demanda y el autoescalado,capacidades clave de los entornos de nube y nube híbrida.
  • Mayor seguridad: los contenedores de Linux ofrecen características de seguridad mejoradas a través del aislamiento y el control de recursos. También existen módulos de seguridad específicos de tareas para procesos individuales de Linux que se lanzan y actualizan en distribuciones de Linux. Un ejemplo es AppArmor, un módulo de seguridad del kernel de Linux que restringe la forma en que los procesos pueden ejecutarse dentro de los contenedores.
  • Reducción del overhead: los contenedores Linux maximizan la utilización de recursos y la escalabilidad al permitir que múltiples contenedores se ejecuten en un único sistema host y SO a la vez. Este aspecto de los contenedores Linux reduce significativamente el overhead de ejecutar sistemas operativos simultáneos, un requisito de muchas otras tecnologías de virtualización.
  • Orquestación mejorada: La orquestación de contenedores (a menudo a través de Kubernetes) automatiza los procesos de gestión de contenedores Linux, como el despliegue y el escalado. Los contenedores Linux proporcionan un control granular sobre la administración de contenedores, lo que facilita a los desarrolladores coordinar y administrar el despliegue de aplicaciones en contenedores a gran escala.

Casos de uso de contenedores de Linux

Debido a sus muchas características y beneficios y al éxito del modelo de distribuciones de código abierto de Linux, los contenedores de Linux se despliegan en muchas industrias y tienen muchos casos de uso. Estos son algunos de los más populares.

Arquitectura de microservicios

Microservices la arquitectura de microservicios es un enfoque arquitectónico nativo de la nube para el desarrollo de software donde una aplicación se construye a partir de componentes más pequeños e independientes.Hoy en día, un enfoque de microservicios se utiliza ampliamente en muchos entornos de desarrollo de software debido a su velocidad, escalabilidad y flexibilidad.

Los contenedores de Linux son ideales para las arquitecturas de microservicios, lo que facilita a los desarrolladores desplegar microservicios individuales que se pueden vincular para crear aplicaciones grandes y complejas.

DevOps y CI/CD

DevOps y la integración continua/entrega continua (CI/CD) son un conjunto de prácticas empleadas por los desarrolladores de software para automatizar el desarrollo y la entrega de software.

Los contenedores de Linux mejoran DevOps y CI/CD de varias maneras importantes. En primer lugar, los contenedores de Linux ayudan a garantizar la coherencia de los entornos de producción en todo el proceso de CI/CD, de modo que cuando se lanza un software, funciona según lo previsto. 

En segundo lugar, automatizan tareas en la creación, prueba e implementación de aplicaciones, lo que ayuda a los desarrolladores a ahorrar tiempo y recursos. Finalmente, los contenedores de Linux son más livianos que otros tipos de virtualización, lo que ayuda a los equipos de DevOps a reducir el coste de la infraestructura de TI que necesitan para cumplir con sus plazos.

Entornos híbridos y multinube

La mayoría de las empresas modernas necesitan desplegar sus aplicaciones principales de actividad principal en una combinación de plataformas de nube privada y nube pública, un enfoque conocido como arquitectura de nube híbrida.

Los contenedores Linux son ideales para entornos de nube híbrida que combinan nubes públicas y nubes privadas debido a su portabilidad y utilización de Recursos. Los contenedores de Linux pueden ayudar a mejorar la eficiencia en entornos de nube híbrida, aumentar significativamente el rendimiento de las aplicaciones y minimizar los costos operativos.

Modernización de aplicaciones

Como parte de las iniciativas de transformación digital en curso, muchas compañías necesitan desarrollar y mejorar la forma en que funcionan sus aplicaciones, buscando constantemente nuevas tecnologías y herramientas que puedan brindarles un beneficio en el mercado.

Según el IBM Institute of Business Value, el 83 % de los ejecutivos han hecho de la modernización de sus aplicaciones un elemento central de su estrategia empresarial. Los contenedores de Linux aceleran este esfuerzo al tomar aplicaciones basadas en código heredado/existente e infraestructura y aislar sus dependencias y requisitos para que puedan desplegar de manera fácil y efectiva en entornos modernos.

Soluciones relacionadas
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud es una plataforma de contenedores OpenShift (OCP) totalmente gestionada.

Conozca Red Hat OpenShift
Soluciones de contenedores

Las soluciones de contenedores ejecutan y amplían cargas de trabajo en contenedores con seguridad, innovación de código abierto y despliegue rápido.

Explorar contenedores
Servicios de consultoría en la nube 

Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.

Servicios en la nube
Dé el siguiente paso

Modernice su infraestructura con las soluciones de contenedores de IBM. Ejecute, escale y gestione cargas de trabajo en contenedores en todos los entornos con flexibilidad, seguridad y eficiencia mediante el uso de la plataforma integral de contenedores de IBM.

Explore las soluciones de contenedores Cree su cuenta gratuita de IBM Cloud
Notas de pie de página