Ciclo de Vida dos Containers: Do Nascimento Γ TranscendΓͺncia π
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CONTAINER LIFECYCLE STATES β
β β
β created βββΊ running ββββΊ paused β
β β β β β
β β ββββΊ stopped ββ β
β β β β
β ββββββββββββββββΊ removed β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Estados Fundamentais π
1. Created
# Criar container sem iniciar
docker create --name meu-container nginx
# Verificar estado
docker ps -a | grep meu-container
# Criar com configuraΓ§Γ΅es especΓficas
docker create \
--name web-app \
--memory 512m \
--cpus 2 \
--network bridge \
nginx:latest
2. Running
# Iniciar container
docker start meu-container
# Criar e iniciar imediatamente
docker run -d --name outro-container nginx
# Executar com limites e variΓ‘veis
docker run -d \
--name app \
-p 8080:80 \
-v /data:/app/data \
-e NODE_ENV=production \
--restart unless-stopped \
node:alpine
3. Paused
# Pausar container
docker pause meu-container
# Despausar container
docker unpause meu-container
# Pausar mΓΊltiplos containers
docker pause $(docker ps -q)
4. Stopped
# Parar container gracefully
docker stop meu-container
# Parar container imediatamente
docker kill meu-container
# Parar com timeout personalizado
docker stop --time 30 meu-container
5. Removed
# Remover container parado
docker rm meu-container
# ForΓ§ar remoΓ§Γ£o
docker rm -f meu-container
# Remover todos containers parados
docker container prune
Transições de Estado Avançadas π
Restart Policies
# No - nΓ£o reinicia automaticamente
docker run --restart no nginx
# Always - sempre reinicia
docker run --restart always nginx
# On-failure - reinicia em caso de erro
docker run --restart on-failure:3 nginx
# Unless-stopped - reinicia exceto se parado manualmente
docker run --restart unless-stopped nginx
Gerenciamento de Recursos
# Limitar memΓ³ria e CPU
docker run \
--memory 512m \
--memory-swap 1g \
--cpus 2 \
--cpu-shares 1024 \
nginx
# Atualizar limites em runtime
docker update \
--memory 1g \
--cpus 4 \
container_id
Monitoramento e Logging π
Health Checks
# Configurar health check
docker run -d \
--name web \
--health-cmd="curl -f http://localhost/ || exit 1" \
--health-interval=5s \
--health-retries=3 \
--health-timeout=2s \
nginx
Logs
# Ver logs com timestamp
docker logs --timestamps container_id
# Follow logs em tempo real
docker logs -f container_id
# Logs desde especΓfico timestamp
docker logs --since 2023-01-01T00:00:00 container_id
Waifu Container Tips π‘
Checkpoint Final β
Você agora domina:
[x] Estados e transições dos containers
[x] Políticas de restart
[x] Monitoramento básico
[x] Health checks
[x] Logging
[x] Gerenciamento de recursos
Próximos Passos π―
16 abril 2025