Docker Containers – ¿Que son?, despliegue en local y Azure (1 de 3)
Buenas,
Tras la reciente anuncio de partnership que Microsoft Corp y Docker Inc hicieron el paso 15 de octubre de 2014 el termino containers irrumpiendo con fuerza tanto en el mundo itpro como en el de desarrollo.
En este primer artículo de la serie que hoy comienzo me gustaría explicar ¿Qué son los costainers? y en que se diferencian de las máquinas virtuales. En el segundo artículo de la serie explicaremos como desplegar localmente una aplicación web basada en containers usando boot2docker y terminaremos la serie explicando como desplegar esta misma aplicación en Azure.
Una vez hecha esta pequeña introducción sobre el contenido que cubriremos en la serie pasaremos a explicar que es Docker.
Docker nace como una plataforma abierta basada en Linux y que está especialmente pensada para ejecutar aplicaciones distribuidas. La plataforma docker está formada por un engine, un runtime, un herramienta de packaging, un hub y un cloud service que nos permite compartir aplicaciones y automatizar workflows. Entre las principales virtudes de la plataforma cabe destacar las siguientes:
– Las aplicaciones dockerizadas se crean con una capa de abstracción que aísla totalmente la capa de aplicación y sus dependencias del sistemas operativo en el que se ejecuta lo que nos permite crear entornos standard de desarrollo, calidad y producción sin demasiados esfuerzos
– Las aplicaciones dockerizadas están basadas en un engine standard dándonos total flexibilidad a la hora de elegir donde correr nuestras aplicaciones ya sea en on-promise o en cualquier nube pública.
– La infraestructura que soporta las aplicaciones basadas en docker es fácilmente escalable dependiendo de la demanda.
– Las aplicaciones basadas en docker se pueden desarrollar usando cualquier lenguaje de desarrollo y son totalmente portables.
– Docker ofrece un hub con más 13.000 aplicaciones que puede ser un punto de partida perfecto para los profesionales que empiezan a tomar contacto con esta tecnología
Referente a las diferencias principales entre máquinas virtuales y containers basados en docker creo que queda bastante bien explicada en la siguiente imagen.
Como se puede observar las aplicaciones basadas en docker comparten únicamente el engine y cada aplicación y sus dependencias corre en procesos aislados y hace uso de recursos dedicados aunque comparten el kernel del host con otros containers.
Espero que os resulte de utilidad, en el siguiente post veremos como usar boot2docker y desplegaremos una aplicación dockerizada en local.
Un saludo.