Saltar al contenido principal
MDev Env Pro
Guía: Guía 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.

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 Localhttp://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 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.

¿Terminaste esta lección?

Marca tu progreso para sincronizar el avance en tu navegador.