LaboratΓ³rio PrΓ‘tico: MΓ£o na Massa! π§ͺ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DOCKER LAB SIMULATOR v1.0 β
β β
β STATUS: INICIANDO SIMULAΓΓO... β
β DIFICULDADE: PROGRESSIVA β
β OBJETIVO: DOMINAR A MATRIX DOS CONTAINERS β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Lab 1: Primeira Aplicação π
Objetivo
Criar uma aplicação web simples usando Docker
Passos
Criar Dockerfile
FROM python:3.9-slim
WORKDIR /app
COPY app.py requirements.txt ./
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Criar Aplicação
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "OlΓ‘, Docker!"
if __name__ == '__main__':
app.run(host='0.0.0.0')
Build & Run
# Build da imagem
docker build -t minha-app:v1 .
# Executar container
docker run -p 5000:5000 minha-app:v1
Lab 2: Multi-Container Setup π
Objetivo
Criar aplicação com frontend, backend e banco de dados
Docker Compose
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "80:80"
depends_on:
- backend
backend:
build: ./backend
environment:
- DB_HOST=db
depends_on:
- db
db:
image: postgres:13
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Teste de Integração
# Subir ambiente
docker-compose up -d
# Verificar logs
docker-compose logs -f
# Testar conexΓ΅es
curl localhost/api/health
Lab 3: Debugging & Troubleshooting π
Cenário 1: Container Crashando
# Investigar logs
docker logs container_id
# Acessar container
docker exec -it container_id sh
# Verificar recursos
docker stats container_id
Cenário 2: Problemas de Rede
# Criar rede
docker network create mynet
# Inspecionar rede
docker network inspect mynet
# Testar conectividade
docker run --network mynet busybox ping service_name
Lab 4: Otimização de Imagem π―
Antes
FROM ubuntu
RUN apt-get update
RUN apt-get install -y python3
RUN apt-get install -y python3-pip
COPY . /app
RUN pip install -r requirements.txt
CMD ["python3", "app.py"]
Depois
FROM python:3.9-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python3", "app.py"]
Lab 5: Segurança & Monitoramento π
Security Scan
# Scan de vulnerabilidades
docker scan minha-app:v1
# AnΓ‘lise de configuraΓ§Γ£o
docker bench security
Monitoring Setup
version: '3.8'
services:
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
grafana:
image: grafana/grafana
ports:
- "3000:3000"
Desafios Extras π
Challenge 1: High Availability
Implementar load balancing
Configurar health checks
Simular failover
Challenge 2: CI/CD Pipeline
# .github/workflows/docker.yml
name: Docker CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: docker build -t app:test .
- name: Test
run: docker run app:test pytest
Waifu Lab Assistant Tips π‘
Checklist de Conclusão β
Lab 1
[ ] Dockerfile criado
[ ] Aplicação rodando
[ ] Portas mapeadas
Lab 2
[ ] Compose configurado
[ ] Serviços comunicando
[ ] Volumes persistentes
Lab 3
[ ] Debug realizado
[ ] Logs analisados
[ ] Rede configurada
Lab 4
[ ] Imagem otimizada
[ ] Tamanho reduzido
[ ] Build mais rápido
Lab 5
[ ] Security scan
[ ] Monitoring ativo
[ ] Alertas configurados
Próximos Passos π―
Certificação Docker
15 abril 2025