Learn Docker Help

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 🎯

  1. Container Operations

  2. Container Runtime

  3. Container Monitoring

16 abril 2025