Los contenedores han ayudado a revolucionar la informática, especialmente en la nube, durante la última década. Al reducir la sobrecarga necesaria para ejecutar cosas como máquinas virtuales y permitir un empaquetado y modificación sencillos de imágenes de contenedores en capas, los contenedores han hecho que ejecutar y compartir aplicaciones de software aisladas sea más fácil y rápido que nunca.

El concepto decontenedoresexiste desde hace décadas, pero la contenerización moderna los ha popularizado enormemente en la última década. Chroot, un conceptode Linuxpara cambiar el directorio raíz de un sistema y, por lo tanto, limitar su acceso, existe desde los primeros días de Linux en la década de 1970. Si bien no es una implementación completa de nada parecido a un contenedor moderno, sentó muchas bases para lo que vino después. Las versiones de FreeBSD posteriores tuvieron un concepto de cárceles, que eran procesos aislados similares. La verdadera contenedorización moderna surgió del trabajo realizado en los espacios de nombres y cgroups de Linux, que luego formaron la base para Docker y LXC, entre otros entornos de ejecución.

Relacionado
4 razones por las que deberías usar contenedores Docker en tu PC

Hay muchos beneficios de alojar tus aplicaciones favoritas dentro de contenedores Docker

7

4Los contenedores son ligeros y eficientes.

Ahorre energía y recursos omitiendo el SO

Diagrama que muestra la pila de software de una aplicación contenerizada frente a una virtualizada

Al eliminar el sistema operativo subyacente completo y proporcionar un entorno de ejecución de contenedores para interactuar con el sistema operativo host subyacente, los contenedores pueden reducir enormemente la sobrecarga necesaria para ejecutarlos. Esto los hace más pequeños, más portátiles, más rápidos y más fáciles de implementar y desmantelar que una máquina virtual. También permite que se ejecuten más instancias de aplicaciones en el mismo hardware que lo que se requeriría para una flota de máquinas virtuales. Ya sea que ejecute un solo contenedor localmente o cientos de ellos en la nube o en Kubernetes, el uso de contenedores le permitirá ahorrar recursos.

En comparación con las máquinas virtuales, los contenedores también pueden iniciarse y apagarse mucho más rápido, ya que no necesitan iniciar un sistema operativo completo para ejecutar una aplicación. Los contenedores también se pueden transferir más fácilmente, ya que son mucho más pequeños y no necesitan incluir un sistema operativo completo. Algunos entornos de ejecución de contenedores también pueden implementar imágenes en capas, lo que permite modificar solo una pequeña parte de una imagen de contenedor para realizar un cambio menor, lo que hace que sea más fácil almacenarlas en caché.

Relacionado
5 razones por las que Proxmox es mejor que Hyper-V para los entusiastas del laboratorio doméstico

Ni siquiera Hyper-V puede superar a Proxmox en las cargas de trabajo del servidor doméstico

2

3Portabilidad

Los contenedores son mucho más portátiles que las máquinas virtuales

Cómo acceder a la interfaz web de CasaOS dentro de una máquina virtual de VirtualBox

La naturaleza de los contenedores implica que se pueden mover fácilmente entre máquinas, y normalmente empaquetan todas las dependencias dentro del contenedor. Esto significa que se pueden mover de un entorno a otro o de una máquina a otra sin preocuparse por problemas de dependencia. Las máquinas virtuales son significativamente menos portátiles, ya que no existe un formato estándar para compartir máquinas virtuales entre diferentes hipervisores. Esto significa que normalmente estás atado a un tipo de hipervisor o plataforma.

Esto también facilita la implementación de un contenedor de manera idéntica en varias ubicaciones. Por ejemplo, puede ejecutar un contenedor localmente y luego probarlo en su clúster de Kubernetes antes de implementarlo en un entorno de ejecución en la nube, todo sin necesidad de cambiar ninguna definición. La única salvedad aquí es que los contenedores deben crearse para la arquitectura en la que se ejecutan, por lo que un contenedor x86 no se ejecutará en una máquina Graviton de AWS, por ejemplo.

No siempre es cierto que las máquinas virtuales no sean portables entre plataformas, pero normalmente es un proceso más complejo que el de los contenedores.

2La comunidad y el ecosistema

Instalar tu aplicación favorita es tan sencillo como ejecutar 'docker run'

Extracción de la imagen Docker de TensorCore en Milk-V Jupiter

Uno de los mayores beneficios de los contenedores para los desarrolladores y los entusiastas del homelab es el ecosistema y la comunidad que los rodea. ¿Necesita una imagen para su servicio, herramienta o aplicación favorita? Probablemente haya una en Docker Hub que pueda crear en unos segundos. ¿Quiere instalar un nuevo proxy nginx o una instancia Jellyfin? Es tan fácil como descargar uno de la nube y completar la configuración. Los contenedores brindan una facilidad modular para implementar sus aplicaciones favoritas y facilitan la incorporación de sus datos o configuraciones existentes mediante volúmenes.

Si no sabe qué hacer con un contenedor o necesita realizar algunas modificaciones, es tan fácil como consultar la definición. En el caso de los contenedores de Docker Engine, es tan sencillo como leer un Dockerfile, que define todo lo necesario para recrear el contenedor a partir de una imagen base. Esto hace que comprender cómo funcionan los contenedores, así como inspeccionar exactamente lo que contienen, sea muy fácil.

1Fácil aislamiento para aplicaciones.

Parte de la razón por la que la comunidad apoya tanto a los contenedores es que son seguros de forma predeterminada. Una imagen de contenedor es fácil de auditar y contiene, fundamentalmente, muchos menos elementos maliciosos que una imagen de máquina virtual completa. No recomendamos descargar y ejecutar una imagen de máquina virtual completa para su laboratorio doméstico, ya que podría contener cualquier cantidad de código desconocido o aplicaciones maliciosas, de forma similar a por qué no recomendamosISOs de Windows personalizados. Pero un contenedor es mucho más fácil de auditar y mucho más pequeño tanto en su superficie de ataque como en su huella.

Los contenedores conservan gran parte del aislamiento que proporcionan las máquinas virtuales, lo que permite mantener aisladas las aplicaciones y los procesos. Las herramientas de orquestación comodocker-composepueden facilitar el uso compartido de recursos, como elementos de red y volúmenes, al tiempo que permiten un aislamiento y una seguridad adecuados en cada proceso.

Ahora bien, los contenedores no siempre son 100 % seguros. Por ejemplo, yo no usaría Docker como cárcel para probar malware. Las máquinas virtuales todavía tienen su lugar y también pueden tener beneficios. Pero para la mayoría de los usuarios, especialmente en el laboratorio doméstico o en el espacio personal, los contenedores son una opción mucho mejor.

Los contenedores son un enfoque moderno para ejecutar aplicaciones.

Los contenedores son una forma moderna y optimizada de ejecutar aplicaciones, ya sea en un laboratorio doméstico o en un contexto empresarial. Ahorran tiempo y recursos, además de permitir compilaciones simples, lo que hace que la implementación y el desarrollo de aplicaciones sean muy sencillos. Ya sea que uses un contenedor o cientos, será difícil vivir sin su simplicidad y eficiencia una vez que los hayas adoptado.

Si utiliza un hipervisor como Proxmox, puede utilizar contenedores de forma nativa en su laboratorio doméstico. De manera similar, si ya utiliza TrueNAS o algo similar, es posible que esté utilizando contenedores sin siquiera darse cuenta.

Los contenedores pueden resultar un poco extraños al principio: parecen demasiado buenos para ser verdad, pero son la columna vertebral de la implementación, la gestión y el empaquetado de muchas aplicaciones modernas. Pueden aportar enormes beneficios, especialmente si todavía se utilizan máquinas virtuales.

Relacionado
5 razones por las que Proxmox es el sistema operativo ideal para el laboratorio doméstico

No hay nada como Proxmox para los entusiastas de los servidores domésticos y los aficionados al bricolaje.

3