Docker ComposeDeployProducción9 min de lectura

Deploy multi-servicio con Docker Compose

Desplegá una aplicación completa con Docker Compose: app, base de datos, Redis y Nginx.


Docker Compose permite definir y ejecutar aplicaciones multi-contenedor. Ideal para desplegar un stack completo en producción.

Paso 1 — Instalar Docker y Docker Compose

Si no tenés Docker instalado:

bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Docker Compose viene incluido con Docker Engine moderno (plugin docker compose).

Paso 2 — Estructura del proyecto

bash
mkdir -p ~/miapp && cd ~/miapp

Creá docker-compose.yml:

yaml
version: '3.8'

services:
  app:
    build: .
    restart: always
    environment:
      - DATABASE_URL=postgres://appuser:secreto@db:5432/miapp
      - REDIS_URL=redis://redis:6379
    depends_on:
      - db
      - redis
    networks:
      - backend

  db:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_DB: miapp
      POSTGRES_USER: appuser
      POSTGRES_PASSWORD: secreto
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - backend

  redis:
    image: redis:7-alpine
    restart: always
    command: redis-server --requirepass redispass
    volumes:
      - redisdata:/data
    networks:
      - backend

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/nginx/certs
    depends_on:
      - app
    networks:
      - backend

volumes:
  pgdata:
  redisdata:

networks:
  backend:

Paso 3 — Configuración de Nginx

Creá nginx.conf:

nginx
server {
    listen 80;
    server_name midominio.com;

    location / {
        proxy_pass http://app:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Paso 4 — Desplegar

bash
docker compose up -d
docker compose ps
docker compose logs -f app

Paso 5 — Comandos útiles

bash
# Reconstruir después de cambios
docker compose up -d --build

# Ver logs de un servicio
docker compose logs -f db

# Ejecutar comando en contenedor
docker compose exec app sh

# Detener todo
docker compose down

# Detener y eliminar volúmenes (cuidado)
docker compose down -v

Paso 6 — Actualizar en producción

bash
git pull
docker compose up -d --build app

Docker Compose simplifica el deploy de aplicaciones complejas en tu VPS de Baires Host.


¿Te resultó útil esta guía?