$ docker modulo_3
Volumes, redes e Compose
Persistir dados, conectar serviços e orquestrar tudo com docker compose.
O que você vai aprender
- Volumes nomeados vs bind mounts
- Redes bridge e DNS interno
- docker-compose.yml de verdade
- depends_on e restart policies
1. Volume para dados
docker volume create pgdata
docker run -d --name db \
-e POSTGRES_PASSWORD=secret \
-v pgdata:/var/lib/postgresql/data \
postgres:16-alpine
2. Compose completo
services:
api:
build: .
ports: ["8000:8000"]
environment:
DATABASE_URL: postgres://app:secret@db:5432/app
depends_on: [db]
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
docker compose up -d --build
docker compose logs -f api
docker compose down
EXERCÍCIO
Suba api+db com compose. Entre no container da api e faça ping no hostname db.