Saltar al contenido principal
MDev Env Pro
Curso: Docker para Devs57% Completado

En este módulo aprenderás:

  • Levanta bases de datos (PostgreSQL, Redis) y servicios con un solo comando en entorno local.
  • Comandos y configuraciones clave para 04. Docker Compose para entorno local
  • Ejercicios prácticos listos para probar en tu terminal local

Orquestación Local con Docker Compose

Causita, estar haciendo docker run larguísimos en la terminal recordando puertos y contraseñas de PostgreSQL es una pesadilla. Docker Compose te permite declarar toda la arquitectura de tu aplicación en un solo archivo docker-compose.yml.

Ejemplo Completo de docker-compose.yml para Desarrollo

docker-compose.ymlyaml
version: '3.8'

services:
# Servidor Backend / Frontend en Node.js
app:
  build:
    context: .
    target: runner
  ports:
    - "4321:4321"
  environment:
    - DATABASE_URL=postgresql://postgres:secret123@db:5432/app_db
    - REDIS_URL=redis://cache:6379
  volumes:
    - .:/app
    - /app/node_modules
  depends_on:
    - db
    - cache

# Base de datos PostgreSQL
db:
  image: postgres:16-alpine
  restart: always
  environment:
    POSTGRES_USER: postgres
    POSTGRES_PASSWORD: secret123
    POSTGRES_DB: app_db
  ports:
    - "5432:5432"
  volumes:
    - postgres_data:/var/lib/postgresql/data

# Cache Redis
cache:
  image: redis:7-alpine
  ports:
    - "6379:6379"

volumes:
postgres_data:

Comandos Esenciales de Docker Compose

  • docker compose up -d: Levanta todos los servicios en segundo plano.
  • docker compose down: Apaga todos los contenedores y libera los puertos.
  • docker compose logs -f app: Muestra los logs en vivo del servicio app.
  • docker compose exec db psql -U postgres: Ingresa directamente al CLI de PostgreSQL.

Ejercicio Práctico Ninja 🥷

  1. Crea un archivo docker-compose.yml con el servicio db de PostgreSQL.
  2. Ejecuta docker compose up -d y comprueba que el puerto 5432 esté respondiendo.
  3. Corre docker compose ps para ver el estado de los servicios.