En esta cápsula veremos cómo  utilizar Docker para el desarrollo web local: Apache, Mysql, PHP y PhpMyadmin.

Introducción

¿Por qué sigue siendo tan difícil obtener una configuración que funcione, que haga lo que necesita y que coincida con el entorno de despliegue de pruebas, puesta en escena, producción, etc.?

Con esto quiero decir, comenzamos usando las herramientas nativas disponibles en nuestro sistema operativo de elección. Lo más probable es que comencemos con LAMP, MAMP y WAMP.

Una vez que los hayamos exprimido, generalmente avanzamos a las VM de Vagrant y Virtualbox o VMware, después de aprender una (o más) herramientas de aprovisionamiento como Ansible o Puppet.

Hasta ahora, nuestros entornos de desarrollo se han vuelto bastante sofisticados, pero la sobrecarga tanto de la construcción como del mantenimiento también ha aumentado significativamente.

¿No sería fácil si pudiéramos configurarlos, pero con solo una pequeña inversión de tiempo y esfuerzo?

Si se puede, ¿has oído hablar alguna vez de Docker?

Docker es más simple

Esta es la definición de Docker:

“Los contenedores Docker envuelven una pieza de software en un sistema de archivos completo que contiene todo lo que necesita para funcionar: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, cualquier cosa que pueda instalar en un servidor. Esto garantiza que siempre se ejecutará igual, independientemente del entorno en el que se esté ejecutando.”

Ahora puede pensar que todo esto parece similar a LAMP o Vagrant/VirtualBox VM. De alguna manera lo es, pero también requiere muchos menos recursos y tiempo. Docker contiene (y usa) solo lo que necesita para ejecutar su aplicación, nada más, de tal manera que reduce los recursos consumidos significativamente.

No se está construyendo una máquina virtual que consumirá una buena parte de los recursos de su PC. No es necesario aprender configuraciones complejas para construir una configuración básica y funcional. No se necesita hacer mucho para ponerlo en funcionamiento. Docker le permite construir su infraestructura de aplicaciones, como lo haría con su código.

Si necesita cambiar el servidor web o el servidor de la base de datos, cambia el actual por otro. ¿Necesita agregar un servidor de almacenamiento en caché, registro o un servidor de sistema de colas? Agrégalo a la mezcla y continúa, es así de simple.

Suena atractivo, ¿verdad?

Seguir leyendo