Sí, la ballenita, no estoy hablando de los pantalones de oficinista, porque a esos debes agregarle una «s» para Dockers, jaja.

Para los desarrolladores, es bien conocido el uso de suite de herramientas que con unos pocos clicks nos montan servidores web completos, XAMPP, WAMP y varios más. Ahora bien, qué pasa cuando estas geniales herramientas se tornan un dolor de cabeza, solo les mencionaré un par de ejemplos y después el gran problema.

No me funciona el servidor porque el puerto 80 está ocupado por otro software.

Ups, uno de los casos más comunes, incluso esto nos puede generar problemas durante la instalación, si eres novato, será un tremendo dolor de cabeza descubrir cuál software es el que usa el puerto 80; si tienes un poco más de experiencia y por el terminal ruteas el uso de puerto 80, podrás toparte con que software bien comunes como: skype, teamviewer o steam pueden estar interfiriendo y usando el puerto 80, si bien cerrarlos antes de instalar tu servidor web es una solución, seguramente en algún minuto, otro problema saltará por este mismo caso.

Había instalado MySQL y ahora no funciona la suite.

Demonios, ¿en serio? La M de XAMPP o WAMP justamente es la pista de que incluye MySQL como parte de la suite, si lo instalas por fuera, tendrás que volver a configurarlo para que funcione correctamente o bien incluso no te dejará terminar la instalación, ya que no podrás terminar de configurar las herramientas necesarias. Otro dolor de cabeza y una perdida de horas innecesarias, las cuales deberías invertir en desarrollar y no en estar instalando software de servidor.

El infierno sería así: Tengo instalado XAMPP, todo funciona perfecto, pero mi cliente quiere todo con Node.js 🙁

Bueno, bienvenido a la edad de piedra, tus horas de instalación y configuración con XAMPP se fueron a la basura y lograr que ambas tecnologías convivan, será un tremendo desafío, incluso puede llegar a ser más tedioso que desarrollar el otro proyecto en un nuevo equipo.

Pero yo no vengo a vender, vengo a regalar, para todos los problemas descritos anteriormente y muchos otros, nació Docker, bueno, nació con otro fin, pero yo lo quise enfocar en los problemas que la mayoría de los desarrolladores novatos o con limitados recursos económicos se topan. Porque bien podríamos estar siempre levantando una nueva configuración en un VPS y nos ahorraríamos muchos problemas, pero bien eso requiere inversión económica, requiere tiempo y mucha paciencia, porque estarás desarrollando en línea y cada CTRL + S tomará unos segundos para que puedas probar que ese «;» no era el único error.

Volvamos a Docker, es un sistema de contenedores, ahora en lugar de tener un solo XAMPP en nuestro sistema operativo, podremos tener muchos y conviviendo al mismo tiempo, sí, por que Docker es como un mini-vps, donde montamos muy fácilmente un software de servidor, nuestras configuraciones y lo podemos clonar, apagar o destruir, y sin recurrir a un software de virtualización pesado que hará que podamos freír un huevo con el calor que emitirá nuestro procesador. Docker nos facilita la gestión de muchos contenedores, puedes montar una suite completa en uno, o solo un software en especifico como MySQL y hacerlo convivir con otros contenedores.

Es una tremenda herramienta, te facilitará la gestión de puertos, recursos y apagar o encender los contenedores solo cuando los necesites, menos dolor de cabeza, menos basura en tu sistema operativo, más tiempo para desarrollar y jugar en línea jaja.

Si bien Docker requiere que adquieras algunos nuevos conocimientos, no son para nada difíciles y podemos tratar el tema de cómo montar tu primera imagen en Docker en un siguiente artículo.

Si quieres aprender más, puedes revisar la web oficial procura instalar la versión CE (Community Edition), que es la de uso libre.

Nos vemos 😉