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.
Arquitectura Docker ComposeHot-Reload & Volúmenes Aislados
Flujo de Datos y Conexión de Red en Entorno Local con Docker Compose
HOST MACHINE (Tu Laptop / Linux)Código Fuente Local
Editor / IDEVS Code / NeovimEdición directa con guardado automático.
Navegador Local
http://localhost:4321Recibe hot reload al instante.↕
volumes: .:/app (Sync en vivo)↕
ports: 4321:4321 (Host Binding)DOCKER COMPOSE NETWORK (`app_network`)Red Puente Aislada
🐳 app (Node/Astro)Dev Container
Ejecuta servidor de desarrollo con watch sobre el volumen montado.
DATABASE_URL=postgresql://db:5432
🐘 db (Postgres 16)Puerto 5432
Persiste tablas en volumen nombrado independiente de reinicios.
volume: postgres_data
⚡ cache (Redis 7)Puerto 6379
Almacén en memoria ultra rápido para sesiones y caché temporal.
in-memory key/value
✓ La red interna permite que `app` se conecte a `db` por hostname sin exponer puertos al exterior.
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.
¿Terminaste esta lección?
Marca tu progreso para sincronizar el avance en tu navegador.