ICM / virtualizacion / Docker. Las claves de los containers.

Docker. Las claves de los containers.

7 diciembre 2019 | Lluis Pons

La evolución de Docker ha sido imparable en la tecnología y ha ganado una gran importancia en cualquier departamento IT. La tecnología de los contenedores existe desde los años 70 en Unix y a lo largo de los años, como todo, ha ido evolucionando mediante diferentes proyectos. En la actualidad, Docker es el proyecto de contenedores más extendido.

Pero ¿entendemos bien las ventajas de estos containers y la diferencia con la virtualización?

A lo que comúnmente se llama virtualización se trata de una emulación de un hardware para correr un sistema operativo y las aplicaciones que correspondan. Esto es lo que gestionan los diferentes hipervisores del mercado.

En cambio, la virtualización en contenedores se basa en el aislamiento de procesos en el propio host. En este caso, quitamos la capa de emulación y se aprovechan mucho mejor los recursos disponibles sobre un mismo hardware.

containers en tecnología y docker

Este aislamiento se consigue mediante los cgroups y namespaces del Kernel de Linux. Fue entonces, a partir de su incorporación, donde Docker y los contanedores en Linux comenzaron su «época dorada». No obstante, los contenedores son más complejos a lo que la seguridad se refiere.

¿Qué aporta Docker y por qué es la clave del éxito?

Docker facilita el despliegue de las aplicaciones basada en imágenes, ya que el desarrollador puede trabajar en cualquier entorno bajo la misma pila de librerías y dependencias de software que requiera su aplicación.  

Todo está empaquetado en la imagen, que una vez generada, está a punto para poder ser ejecutada en cualquier entorno basado en Docker. Otra ventaja es que el Docker puede crear tantas imágenes como necesite, con su versionado, y desplegar la correcta en cada momento.

Además, junto a herramientas de orquestración como Kubernetes, entre otras, se simplifica el proceso de despliegue de aplicaciones y su escalado, siendo agnósticos a la infraestructura de los diferentes actores de cloud ya sea en ICM o clouds públicos.