Conceptos

Docker Compose

Herramienta para definir y ejecutar aplicaciones multi-contenedor con un archivo YAML, simplificando el desarrollo local de sistemas con múltiples servicios.

seed#docker-compose#docker#local-development#yaml#multi-container#devops

¿Qué es?

Docker Compose es una herramienta para definir y ejecutar aplicaciones que consisten en múltiples contenedores Docker. Un archivo compose.yaml describe todos los servicios, redes y volúmenes, y un solo comando los levanta todos.

compose.yaml básico

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      DATABASE_URL: postgres://db:5432/app
  
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: app
 
volumes:
  pgdata:

Comandos esenciales

  • docker compose up: levantar todos los servicios
  • docker compose up -d: levantar en background
  • docker compose down: detener y eliminar contenedores
  • docker compose logs -f: seguir logs de todos los servicios
  • docker compose exec web sh: shell en un servicio

Casos de uso

  • Desarrollo local de microservicios
  • Ambientes de testing con dependencias reales
  • Demos y prototipos rápidos
  • CI/CD para tests de integración

Compose vs Kubernetes

AspectoDocker ComposeKubernetes
PropósitoDesarrollo local, CIProducción, orquestación a escala
ComplejidadBaja — un archivo YAMLAlta — múltiples recursos (Deployments, Services, Ingress)
EscaladoManual (scale: 3)Automático (HPA, VPA)
NetworkingRed bridge por defectoCNI plugins, service discovery
EstadoStateful con volúmenes localesStatefulSets, PersistentVolumes
MigraciónKompose convierte compose files a manifiestos K8s

¿Por qué importa?

Docker Compose permite definir aplicaciones multi-contenedor como código. Para desarrollo local, reemplaza scripts de setup complejos con un solo comando que levanta bases de datos, caches y servicios auxiliares en el orden correcto.

Referencias

Conceptos