Domina Docker Compose PARTE 2: Automatiza tus Contenedores Fácilmente

🧠 ¿Qué es Docker Compose y por qué es importante?

Docker Compose es una herramienta que permite definir, configurar y levantar múltiples contenedores Docker usando un solo archivo llamado docker-compose.yml.

En vez de correr muchos comandos docker run con configuraciones complicadas, Compose te permite definir toda la arquitectura de tu aplicación en un archivo limpio, legible y reutilizable.

✅ ¿Por qué es tan importante?

  • Automatiza y simplifica el despliegue de proyectos complejos.
  • Define todos tus servicios, redes, volúmenes y variables en un solo lugar.
  • Hace que tu entorno de desarrollo sea portátil y replicable.
  • Acelera el onboarding de nuevos desarrolladores al proyecto.

📄 ¿Cómo se ve un archivo docker-compose.yml?

Ejemplo mínimo:

👉 Este fragmento lanza un contenedor basado en la imagen de Nginx, exponiendo el puerto 80 del contenedor al puerto 8080 del host. Útil para acceder al servidor web desde tu navegador en localhost:8080.

Desde Docker Compose v2, ya no es necesario declarar version, ya que Docker detecta automáticamente el esquema adecuado.

🔍 Estructura detallada del archivo docker-compose.yml

👉 Esta estructura define cómo debe ejecutarse un contenedor. Puedes elegir una imagen o construir una desde un Dockerfile, exponer puertos, definir variables de entorno, montar volúmenes y declarar dependencias entre servicios.

👨‍💻 Caso real: App Node.js + PostgreSQL

🗂 Estructura del proyecto

📦 docker-compose.yml

👉 Este archivo define dos servicios: app, que se construye desde un Dockerfile y escucha en el puerto 3000, y db, una base de datos PostgreSQL persistente. Usa variables de entorno para la configuración de la base y un volumen para mantener los datos.

🧱 Dockerfile

👉 Este Dockerfile crea una imagen ligera de Node.js. Define /app como directorio de trabajo, instala dependencias y lanza la app en el puerto 3000.

▶️ ¿Cómo se usa Docker Compose?

🧪 Levantar todos los servicios:

👉 Levanta todos los contenedores definidos en el archivo. Útil para desarrollo local.

💻 En segundo plano:

👉 Lo mismo que el anterior, pero ejecuta en segundo plano (modo detached).

🧹 Para parar y limpiar:

👉 Detiene todos los contenedores y elimina las redes asociadas.

🔄 Para reconstruir:

👉 Reconstruye las imágenes desde el Dockerfile. Útil si hiciste cambios en el código fuente o en el Dockerfile.

Docker Compose v2 se usa directamente con el comando docker compose (sin guion). Ya no es necesario tener docker-compose como binario separado.

🧩 ¿Cómo se alinea con tu proyecto?

Compose permite replicar la arquitectura de producción en local.

🌟 Buenas prácticas

  • Usa .env para las variables sensibles.
  • Versiona tu archivo docker-compose.yml.
  • Usa volumes para persistencia.
  • Usa restart: always si es necesario.
  • Comenta y documenta si trabajas en equipo.
  • Mantén tus servicios en redes personalizadas si necesitas mayor control.

📌 Conclusión

Docker Compose es el siguiente nivel tras dominar Docker. Te da control, orden y facilidad para escalar tu entorno de desarrollo o incluso llevarlo a producción. Una herramienta indispensable para cualquier desarrollador moderno.

🚀 ¿Quieres ejecutar Docker Compose en tus proyectos y simplificar tu flujo de trabajo?💬 ¡Escríbenos! Te ayudamos a integrar Docker en tu infraestructura y optimizar tu desarrollo.

Karla Cabañas

April 14, 2025