Quiero presentar Docker una herramienta que seguro que muchos ya conocéis o habéis oído hablar de ella pero estoy convencido que muchos de vosotros aun no lo habéis puesto en producción. En esta entrada quiero evitar los tecnicismos e intentar explicarlo de una forma coloquial, comencemos:
Tecnología Maquinas Virtuales

Quien no ha usado alguna vez Maquinas Virtuales con programas tan famosos con WMWare o VirtualBox entre otros muchos. Todos sabemos que trabajar con maquinas virtuales es un proceso que consume muchos recursos de nuestras maquinas Host. El motivo de tanto consumo es por la forma en la que se estructuran, viendo el siguiente Gráfico, podéis interpretar que por encima de la capa de Infraestructura esta el Sistema Operativo local, hasta ahí es la instalación que cualquier ordenador tiene. Después tenemos la capa del Hipervisor, como ya sabes el hipervisor es el programa que interpreta o emula los componentes de hardware para poder instalar cualquier maquina virtual, antes he nombrado a WMWare y VirtualBox pero hay muchos mas. Cada sistema virtualizado tiene sus propias capas que van desde su propio Sistema Operativo Virtual hasta las capas de aplicaciones, todo ello consumiendo muchísimos recursos de la maquina principal (Host). Este consumo de recursos se ve multiplicado si corremos varias maquinas virtuales a la vez sobre un mismo Host. Al final todo tiene un limite y los recursos son finitos.
Tecnología Docker

Docker es una pieza de software libre. Podríamos decir que es una especie de maquinas virtuales pequeñas y muy ligeras, pero esto es una definicion erronea, ya que Docker trabaja directamente con el Kernel del Host, crea sus hilos independientes, desde el árbol de procesos, hasta interfaces de red.
Es un sistema basado en Contenedores. La idea es trabajar haciendo un paralelismo a la forma en la que se transportan las mercancías, que usan grandes Contenedores donde en su interior está todo perfectamente ordenado. Lo mas importante de un contenedor es que guarda la misma forma y tamaño, esto resuelve el problema logístico.

Partiendo de esa base, podemos ver técnicamente como funciona Docker. Si miramos el siguiente Gráfico, podemos ver como hasta el Sistema Operativo Host e incluso hasta el Motor de Docker es exactamente igual que a las Maquinas Virtuales, pero la diferencia se aprecia en las capas superiores, ya que lo mas importante es que Docker no necesita virtualizar o crear un Sistema Operativo Huesped al 100%, ya que comparte directamente todas las capas hacia abajo del host a nivel de kernel, de manera que solo encapsula en el contenedor aquello que necesita para desplegarse. Se puede apreciar claramente la gran diferencia de recursos que optimiza frente a las Maquinas Virtuales.
¿ Donde se puede instalar Docker ?
Podemos encontrar Docker para casi todos los Sistemas Operativos , desde Linux, Windows y MacOS. Esta disponible para su descarga en su propia pagina web: Docker
Como empezar.
En la web hay muchísimos tutoriales para empezar a trabajar con Docker, aunque en un principio la curva de aprendizaje puede parecer complicada, realmente al final no es tanto. sinceramente en cuanto empiezas a usar Docker te engancha y en poco tiempo estas desplegando tus contenedores de una forma ágil, sin «ensuciar» con instalaciones el sistema Operativo Host. Permite migrar, levantar sistemas y servicios en cuestión de minutos.
Tienes toda una comunidad creando contenedores, tanto oficiales como de terceros. Están disponibles para su uso y descarga desde la pagina web Docker Hub
A modo de resumen, si aprendes a trabajar con Docker puedes ahorrar mucho tiempo y recursos en tu empresa.