Ejecutar Bases de Datos en Docker
Docker es perfecto para ejecutar bases de datos en desarrollo — obtienes instancias de base de datos aisladas y reproducibles sin instalar nada en tu máquina host.
PostgreSQL
# docker-compose.yml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secreto
POSTGRES_DB: miapp
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin -d miapp"]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres-data:
# Conectar a PostgreSQL
docker compose exec postgres psql -U admin miapp
# Respaldo
docker compose exec postgres pg_dump -U admin miapp > respaldo.sql
# Restaurar
docker compose exec -T postgres psql -U admin miapp < respaldo.sql
Redis
services:
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redis-data:/data
ports:
- "6379:6379"
volumes:
redis-data:
Consejos para Contenedores de Base de Datos
- 💾 Siempre usa volúmenes nombrados para persistencia de datos
- 🔒 Nunca uses contraseñas por defecto en producción
- 📋 Usa scripts de inicialización para configuración de esquema
- 🏥 Configura health checks para que los servicios dependientes esperen por la BD
- 📦 Haz respaldos de volúmenes regularmente