Docker para Developers

Docker es una plataforma que empaqueta tu aplicación en contenedores, garantizando que corra igual en desarrollo, staging y producción.

Conceptos clave

  • Imagen: plantilla de solo lectura con el código y dependencias
  • Contenedor: instancia en ejecución de una imagen
  • Dockerfile: instrucciones para construir una imagen
  • Docker Compose: orquestar múltiples contenedores

Tu primera app en Docker

Crea un Dockerfile para una app Flask:

FROM python:3.12-slim

WORKDIR /app

COPY requirements.txt . RUN pip install -r requirements.txt

COPY . .

EXPOSE 5000 CMD ["python", "app.py"]

Construye y corre:

docker build -t mi-app .
docker run -p 5000:5000 mi-app

Docker Compose con PostgreSQL

version: '3.8'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb

db: image: postgres:15 environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: mydb

Levanta todo con:

docker compose up

Conclusión

Docker elimina el clásico "en mi máquina funciona". Es una herramienta esencial para cualquier developer moderno.