setblau.com | Servicios Informaticos | Blog

Entendiendo Docker

Con este artículo pretendemos iniciar una breve saga explicando qué es docker, para qué usarlo y cómo usarlo.

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software. Los inicios de la tecnología que utiliza docker tienen origen en el 1982 cuando Bill Joy pensó chroot. Desde entonces el hardware y el software ha evolucionado hasta que Salomón Hykes inició este proyecto como un proyecto interno dentro de dotCloud que fue liberado en marzo del 2013.

¿Porqué Docker?

El proyecto docker nos permite:

  • Consolidar Recursos
  • Es un «herramienta» facilitadora para implementar arquitecturas modernas, actualizaciones de proyectos y devops
  • Construye una vez y despliega donde quieras
  • Las aplicaciones o servicios adquieren:
    • Portabilidad
    • Ligereza
    • Autosuficiencia
    • Escalabilidad
    • Gestión del CAOS

Gracias al proyecto docker es posible implementar patrones de desarrollo diferentes a los que existían anteriormente, resultando mucho más sencillo implementar patrones como el de micro servicios pudiendo llevar la programación orientada a objetos un paso más allá y realizar aplicaciones orientadas a servicios y que estas sean reutilizables y fácilmente desplegables en diferentes entornos.

También facilita mucho el aprovechamiento de los sistemas cloud, pudiendo aprovechar la potencia de estos gracias al proyecto kubernetes que es un sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de aplicaciones en contenedores. Permitiendo que las aplicaciones tengan «vida propia» y puedan «contratar» los recursos que necesitan en cada momento y replicarse cuando sea necesario.

Otra de las «maravillas» que puede ofrecer docker es un control de versiones, docker funciona con un sistema de capas de sistemas de archivos lo que nos permite separar e identificar las acciones realizadas en un contenedor que se inició a partir de una imagen y como en un control de versiones normal,  nos permite persistir esos cambios, generar nuevas imágenes y compartirlas, incluso en la comunidad, gracias a docker registry o docker hub.

Al mismo tiempo, y gracias a la funcionalidad que explicamos con anterioridad, es posible aprovechar el trabajo de la comunidad para hacer nuestro trabajo más llevadero, no tiene seguir una how to para instalar un servidor cuando es posible descargarse una imagen con el software y esos pasos ya realizados por el autor que escribió el how to.

Y hasta aquí la primera entrega de docker, esperamos poder publicar siguientes entregas y responder a vuestras consultas muy pronto.

Muchas gracias por leernos y esperamos haber podido ayudar.

Saludos,

Lluís