🐳

Docker Compose

👨‍🍳 Chef

Múltiples contenedores

Docker Compose orquesta múltiples contenedores como un solo sistema.


docker-compose.yml

version: '3.8'

services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://postgres:secret@db:5432/mydb
    depends_on:
      - db
      - redis

  db:
    image: postgres:16
    environment:
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7

volumes:
  postgres_data:

Comandos

# Iniciar todo
docker compose up -d

# Ver logs
docker compose logs -f

# Parar
docker compose down

# Reconstruir
docker compose build --no-cache
docker compose up -d

Networking

Los servicios se comunican por nombre:

// Desde 'app', conectar a 'db'
const db = new Pool({
  host: 'db',  // Nombre del servicio
  port: 5432,
})

Practica

Deploy con Docker