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 servicioapp.docker compose exec db psql -U postgres: Ingresa directamente al CLI de PostgreSQL.
Usa volumenes nombrados para bases de datos
Si no declaras volumes: - postgres_data:/var/lib/postgresql/data, cada vez que hagas docker compose down perderás todos los registros de tu base de datos local.
Ejercicio Práctico Ninja 🥷
- Crea un archivo
docker-compose.ymlcon el serviciodbde PostgreSQL. - Ejecuta
docker compose up -dy comprueba que el puerto 5432 esté respondiendo. - Corre
docker compose pspara ver el estado de los servicios.