Si esta leyendo este artículo es porque, probablemente ha escuchado hablar de Docker. Considerado como la plataforma de contenedor más popular hoy en día, y la que está haciendo más para transformar la forma en la cual las organizaciones manejan las cargas de trabajo de las TI. De hecho, si trabaja con TI, es difícil no haber oído hablar de Docker por ahora.

Pero, ¿Por que Docker se ha vuelto tan popular tan rápido? ¿Que tipos de problemas puede resolver Docker para una empresa? ¿Está relacionado con los diferentes conjuntos de tareas, que son necesarias para implementar Docker en producción en un entorno empresarial?

Este artículo proporciona una introducción a estos temas al explicar los conceptos básicos de cómo funciona Docker, analizar un poco de la historia de Docker y analizar donde se encuentra Docker dentro del ecosistema de contenedores. Los capítulos siguientes ahondan en la funcionalidad de Docker, comparan Docker con máquinas virtuales y brindan una explicación de como ayudar a las empresas a alcanzar un nuevo nivel de eficiencia en las operaciones de TI.

Como trabajar el contenedor Docker

Empecemos con un vistazo del contenedor Docker

Contenedores de Aplicación

Lo primero que tiene que saber de Docker es que es una plataforma contenedora de aplicaciones. Un contenedor de aplicaciones tiene las siguientes características:

  • Es un entorno definido de software. El contenedor puede ser creado y ejecutado mediante un proceso de software; no requiere de un hardware en especial.
  • La aplicación que se ejecuta en el contenedor debe estar diseñada para ejecutarse en el sistema operativo que aloja al contenedor. Por ejemplo, una aplicación que está en un contenedor en un servidor Linux necesita poder ejecutarse en Linux.
  • Se encuentra separado del sistema que lo aloja mediante controles que limitan la habilidad de los procesos dentro del contenedor interactuar con procesos en aquel que lo aloja. Este aislamiento proporciona beneficios de seguridad, mientras simplifican la administración.
  • En la mayoría de los casos, el contenedor está sujeto a límites de capacidad de procesamiento, memoria y recursos de red a los cuales las aplicaciones en el contenedor pueden acceder.

Creación, Ejecución, Administración y Monitoreo del Contenedor

La plataforma de software de Docker consiste en herramientas para crear, ejecutar, administrar y monitorear el contenedor. A continuación indicamos lo que implica cada uno de estas tareas:

Creación del contenedor:

Para lanzar un contenedor de Docker, primero necesita crear una imagen del contenedor. Cada imagen del contenedor esta basado en un archivo Dockerfile, los planos que Docker utiliza para lanzar una instancia de su aplicación dentro del contenedor. El comendo docker build genera una imagen del contenedor basado en Dockerfile. En un despliegue a larga escala, la imagen del contenedor Docker generalmente está almacenada en un registro de contenedores, que sirve como un repositorio desde el cual los usuarios pueden descargar las imágenes.

Ejecución del Contenedor

Para ejecutar un contenedor de Docker, generalmente se utiliza el comando docker pull para descargar la imagen que contiene la aplicación que requiere ejecutar dentro del contenedor. Luego inicia el contenedor con docker start. Cuando el contenedor está activo, puede interactuar con la aplicación dentro del contenedor utilizando comandos como docker exec o docker run, que le permiten utilizar comandos dentro del contenedor.

Administración del Contenedor

Docker proporciona un framework básico para administrar el contenedor. Se puede iniciar, detener o poner en pausa, y realizar otras tareas básicas de administración. Sin embargo, Docker en si mismo no esta diseñado como una solución de administración, y no es práctico iniciar o detener en forma manual un conjunto de contenedores en un entorno de producción. Para administrar un gran conjunto de contenedores en producción, debe utilizar un orquestador de contenedores, como Swarm (Que llega con el paquete de Docker, pero puede dejar de utilizar) o Kubernetes. Un orquestador administra la mayoría del trabajo requerido para iniciar o detener un contenedor, y para asegurar la disponibilidad dentro de un cluster de contenedores.

Monitoreo del Contenedor

Docker también proporciona algunas funcionalidades básicas de monitoreo como docker stats, que proporciona información sobre el uso de los recursos del contenedor, y docker top, que lista los procesos que se ejecutan dentro del contenedor. De la misma forma, Docker en si mismo no esta hecho como una solución de monitoreo. Para monitorear los contenedores en producción, las organizaciones cuentan con mejores soluciones de monitoreo. Datadog, Splunk, y Amazon Web Services son algunos ejemplos de vendedores que ofrecen soluciones para el monitoreo de contenedores.

Esto son los fundamentos de como Docker trabaja.

Una breve historia de Docker

Primero, examinemos de donde llego Docker, y ver la evolución de la plataforma Docker desde que estuvo disponible en 2013.

Desde dotCloud a la corporación Docker

El software que se convirtió en Docker nació de un proyecto en una compañía francesa llamada dotCloud. La compañía ofrecía principalmente una Platform-as-a-Service (PaaS) que almacenaba aplicaciones web y bases de datos para sus clientes. Para ayudar en el manejo de la infraestructura, los ingenieros de la compañía lanzaron algunas funcionalidades que se desplegaban en el Kernel de Linux, incluyendo LXC y cgroups.

Estas características, los bloques de construcción que se convirtieron en el contenedor Docker, existieron durante años antes de que los ingenieros de dotCloud comenzaran a trabajar en ellos. Si bien dotCloud no los invento, sus ingenieros introdujeron una gran innovación al crear un API estándar, que simplificó el proceso de construcción de un contenedor utilizando LXC.

Al principio, dotCloud mantuvo Docker como un proyecto interno. Pero en marzo de 2013, poco después de demostrar a Docker ante un público entusiasta en PyCon, dotCloud lanzó Docker como un proyecto de código abierto. Esto significaba que cualquiera podía descargar, ejecutar y modificar el código.

A partir de ahí, el proyecto Docker eclipsó rápidamente el negocio PaaS de dotCloud. DotClod cambio el nombre a Docker Inc. en octubre del 2013. La compañía aseguró decenas de millones de dólares de financiación en cuatro rondas entre 2013 y 2015, y se volvió lo suficientemente valiosa como para que Microsoft intentara comprarla sin éxito por $4 mil millones en 2016.

La evolución del código de Docker

Desde que el código se hizo público, la tecnología de Docker ha madurado en formas que hacen a Docker mucho más amigable para las empresas. Los grandes cambios incluyen lo siguiente:

  • Los desarrolladores de Docker desarrollaron docker volumes que ayuda a proporcionar almacenes de persistencia para las aplicaciones que se ejecutan dentro del contenedor.
  • La red de contenedores de Docker se ha vuelto más robusta y sofisticada que la conexión de red básica que estaba disponible cuando dotCloud mostró por primera vez Docker en la primavera del 2013.
  • Docker creo Swarm, una herramienta de orquestación para administrar muchos contenedores que se ejecutan como parte de un cluster. Swarm ahora viene como parte del paquete central de Docker, aunque los usuarios pueden reemplazar este con diferentes herramientas de orquestación, como Kubernetes.

Estos cambios hacen cada vez más fácil trabajar con los contenedores Docker en los entornos de producción. De esta forma, han preparado a Docker para las empresas.


Este artículo esta basado en Enterprise Docker by Christopher Tozzi.

¿Que es Docker?
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:        

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: