Skip to main content

Si lo primero que te viene a la cabeza son las VM’s o Máquinas Virtuales, no estás muy alejado de lo que es Docker.

Docker es una plataforma de código abierto que sirve para construir, desplegar y gestionar aplicaciones en aplicaciones ubicadas en “contenedores”. Pero Docker es también el nombre de la empresa que vende la versión comercial que lleva el mismo nombre, y que es uno de los numerosos contribuidores del proyecto Docker Open Source.

En este artículo vamos a hablar de qué es Docker y por qué tanta gente lo está adoptando.

Por eso, desde TicGrup queremos presentarte una sencilla aplicación que permite guardar las contraseñas de los programas de correo más populares. Entre ellos, Outlook. Exportar las contraseñas de Outlook puede ahorrarte mucho tiempo, y minimizar los riesgos operativos que un olvido o error puede tener tu empresa.

¿Qué es Docker?

Docker es una plataforma de contenedorización de aplicaciones, creado en código abierto y que permite a los desarrolladores empaquetar sus aplicaciones en ellos.

Los contenedores son componentes ejecutables estandarizados, que combinan el código fuente de su aplicación con las librerías y dependencias que el sistema operativo necesita para ejecutar ese código en cualquier entorno.

Los contenedores simplifican la entrega y el funcionamiento de las aplicaciones, y se han vuelto muy populares a medida que las empresas se mueven hacia entornos nativos e híbridos de desarrollo.

Los desarrolladores pueden crear contenedores sin utilizar Docker, pero la verdad es que la plataforma hace mucho más fácil, sencillo y seguro construirlos, desplegarlos y gestionarlos. Esencialmente, hablamos de una caja de herramientas que, además, permite a los desarrolladores hacer ejecutar, detener y actualizar esos contenedores con comandos sencillos y automatizaciones a través de una sola API.

¿Cómo funcionan los contenedores?

Los contenedores son posibles gracias a un proceso de aislamiento y virtualización de las capacidades incorporadas en Linux. Capacidades como los Cgroups (control groups) – para asignar distintos recursos en distintos procesos, y namespaces para restringir el acceso o la visibilidad de un proceso a los recursos de otra área del sistema – que permiten que múltiples componentes de una aplicación compartan recursos de sistema operativo, de la misma manera en que lo harían un hipervisor para que varias VM compartan un PC, su memoria u otros recursos de un servidor HW.

Las ventajas de los contenedores Docker

El resultado es que la tecnología de contenedores ofrece toda la funcionalidad y las ventajas de las Máquinas Virtuales (aislamiento de aplicaciones, escalabilidad efectiva) además de:

  • Ser más ligeras: A diferencia de las VM’s, los contenedores no llevan la carga de un sistema operativo y un hipervisor; más bien, solo incluyen los procesos y las dependencias necesarias para ejecutar el código. Su tamaño se mide en MB (mientras que en las VM’s se mide generalmente en GB), lo que mejora el rendimiento de su Hardware y agiliza su puesta en marcha.
  • Mayor eficiencia de recursos. Los contenedores permiten ejecutar varias veces las mismas copias de una aplicación que una VM, y por tanto reduce el gasto en la nube.
  • Aumentar la productividad de los desarrolladores. Si se los compra con las VM, los contenedores son mucho más rápidos de desplegar, aprovisionar y reiniciar. Por todo eso, son ideales para usarlos en canales de integración y despliegue continuo (CI/CD), y una opción muy interesante para equipos de desarrollo que estén adoptando metodologías Agile y DevOps.

Las compañías que utilizan contenedores también declaran otras ventajas, como una mayor calidad de sus apps y una respuesta más rápida a los cambios del mercado.

Motivos para utilizar Docker

Aunque usemos indistintamente “Docker” y “contenedores”, las primeras tecnologías con contenedores existían ya hace años – si no décadas. Antes de que Docker se hiciera público en 2013.

Por allá por 2008, LinuXContainers (LXC) ya estaba disponible en Linux, y permitía virtualizar instancias individuales. Hoy, LXC sigue siendo utilizado, aunque hay nuevas tecnologías disponibles. Y sin ir muy lejos, Ubuntu tiene esta capacidad.

Pero Docker mejoró la “contenedorización” nativa de Linux y añadió nuevas posibilidades:

  • Portabilidad mejorada. Los contenedores LXC dependían de una configuración específica para cada equipo, y los contendores Docker funcionan sin hacer cambios en ningún terminal, data center o entorno de la nube.
  • Más ligero y actualizaciones granulares. Con LXC, se podía combinar muchos procesos en un solo contenedor. Con los contenedores Docker, hay un proceso por cada contendor. Y eso permite construir aplicaciones y mantenerlas activas mientras se edita o se actualiza una de sus partes.
  • Creación automática de contenedores. Docker puede construir contenedores automáticamente, a partir del código fuente de una aplicación.
  • Versionar contenedores. Docker permite rastrear versiones de la imagen de un contenedor, recuperar versiones anteriores y ver quién y cómo construyó la nueva.
  • Reutilización de contenedores. Se puede tomar contenedores existentes, y reutilizarlos como plantillas para crear nuevos.
  • Librerías compartidas. Los desarrolladores pueden acceder a registros de código abierto con miles de contenedores creados por otros usuarios.

Los contenedores Docker funcionan con Microsoft Windows Server. Y la mayoría de los proveedores de la nube ofrecen servicios específicos para ayudar a los desarrolladores a construir, alojar y ejecutar aplicaciones “contenedorizadas” con Docker.

Por todo esto, la adopción de Docker ha explotado y no para crecer. A día de hoy, cuenta con más de 13 millones de desarrolladores, más de 7 millones de aplicaciones y más de 13 billones de descargas mensuales de imágenes.

Los sistemas informáticos deberían estar siempre adaptados a las necesidades presentes de las empresas, pero sin perder de vista el adelanto tecnológico y la escalabilidad. Porque de eso depende en gran medida su competitividad.
En TicGrup tenemos larga experiencia en la implementación de sistemas informáticos,  Máquinas Virtuales y contenedores Docker. Y estaremos encantados de ayudarte a darle a tu empresa las herramientas que necesita.

4.8/5 - (20 votos)
Kenneth L.

Redactor y traductor de contenido para blogs, páginas web y tiendas digitales. Antropólogo de formación, apasionado de la música, la informática y los idiomas.

Escribir un comentario