¿Por qué sí y por qué no usar Docker? Un análisis equilibrado

Docker es una de esas tecnologías que genera reacciones casi religiosas. Hay gente que quiere meter absolutamente todo en ella, y otra que la evita como la peste. La realidad está en algún punto intermedio.

Pantalla dividida mostrando los pros y contras de Docker junto a su arquitectura WSL2 compartida.
Docker: ventajas, complejidad y gestión inteligente de recursos en Windows.

¿Por qué sí usar Docker?

Docker ofrece ventajas claras para el desarrollo y la infraestructura:

  • Instalación limpia: en vez de instalar veinte dependencias en Windows, instalas Docker y ejecutas un contenedor.
  • Aislamiento: si una aplicación necesita Python 3.10 y otra Python 3.12, no se pelean entre sí.
  • Actualizaciones sencillas: muchas veces es simplemente bajar la nueva imagen y reiniciar el servicio.
  • Portabilidad: lo que funciona en tu PC suele funcionar igual en otro equipo o servidor.
  • Ecosistema enorme: proyectos modernos como Immich, Open WebUI, Ollama, Supabase y Nextcloud suelen ofrecer primero una instalación Docker.

¿Por qué no usar Docker?

No obstante, existen razones válidas para evitar su uso en ciertos contextos:

  • Capa adicional de complejidad: cuando algo falla ya no estás depurando solo la aplicación, sino que tienes que lidiar con Docker, la red virtual y los volúmenes.
  • Consumo de recursos: especialmente en Windows, porque normalmente implica el uso de WSL2.
  • Logs y configuración menos evidentes: ya no buscas archivos en carpetas locales, sino dentro de contenedores.
  • Persistencia de datos: si no entiendes bien los volúmenes puedes borrar un contenedor y perder información crítica.
  • Algunas aplicaciones gráficas funcionan peor: Docker brilla más en servicios y servidores que en programas de escritorio tradicionales.

Gestión inteligente de WSL2

Aquí viene uno de los argumentos más fuertes a favor de Docker en Windows: no tendrás una máquina WSL2 por cada proyecto. Cuando instalas Docker Desktop, normalmente existe una única instancia WSL2 que aloja todo el motor.

Esto significa que Immich, ComfyUI, Ollama y otras aplicaciones pueden coexistir dentro del mismo entorno sin crear múltiples máquinas virtuales independientes. La memoria se comparte dinámicamente entre todos los contenedores:

No es asignar 4 GB estáticos por cada VM, sino que el WSL2 usa la memoria que necesite el conjunto de aplicaciones en ejecución.

Por supuesto, si levantas servicios pesados como bases de datos PostgreSQL o modelos grandes para Ollama, todos competirán por RAM dentro del mismo entorno. Pero no porque existan varias máquinas virtuales separadas.

Regla práctica de uso

Para alguien con perfil de administrador de sistemas, Docker suele valer la pena cuando empiezas a acumular servicios tipo servidor. Mi regla práctica es:

  • Aplicación de escritorio tradicional: instalación normal.
  • Servicio web o autohospedado: Docker casi siempre.
  • Experimentos temporales: Docker.
  • Algo que quiero integrar profundamente con Windows: instalación nativa, si existe una buena opción.