Learn Docker Help

Container Resources Management πŸ“Š

Resource Limits Overview 🎯

Basic Resource Types

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CPU β”‚ β”‚ Memory β”‚ β”‚ I/O β”‚ β”‚ Network Bandwidth β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CPU Management ⚑

CPU Limits

# Limitar CPUs docker run --cpus=2 nginx # Definir CPU shares docker run --cpu-shares=512 nginx # Especificar CPUs especΓ­ficas docker run --cpuset-cpus="0,2" nginx

CPU Quotas

version: '3.8' services: app: deploy: resources: limits: cpus: '0.50' reservations: cpus: '0.25'

Memory Management πŸ’Ύ

Memory Limits

# Limite de memΓ³ria docker run --memory=512m nginx # Limite de swap docker run --memory-swap=1g nginx # Reserva de memΓ³ria docker run --memory-reservation=256m nginx

Memory Settings Matrix

Parâmetro

Descrição

Exemplo

--memory

Limite máximo

--memory=1g

--memory-swap

Limite swap

--memory-swap=2g

--memory-reservation

Reserva soft

--memory-reservation=512m

--kernel-memory

Memória kernel

--kernel-memory=256m

Storage Management πŸ’½

Storage Options

# Limitar escrita docker run --device-write-bps /dev/sda:1mb nginx # Limitar leitura docker run --device-read-bps /dev/sda:1mb nginx # Limitar IOPS docker run --device-write-iops /dev/sda:100 nginx

Storage Quotas

services: db: volumes: - data:/var/lib/mysql deploy: resources: limits: storage: 5G

Network Management 🌐

Network Controls

# Limitar banda docker run --network-bandwidth=100mb nginx # QoS settings docker run --network-qos=high nginx

Monitoring Resources πŸ“ˆ

Resource Usage

# Stats em tempo real docker stats # Format especΓ­fico docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" # Batch monitoring docker stats --no-stream

Resource Metrics

# MΓ©tricas detalhadas docker container inspect container_id # Logs de recursos docker logs --details container_id

Resource Optimization πŸ”§

Best Practices

  1. βœ… Defina limites realistas

  2. βœ… Monitore uso constante

  3. βœ… Use reservations

  4. βœ… Configure alertas

  5. βœ… Otimize regularmente

Anti-Patterns

  1. ❌ Sem limites definidos

  2. ❌ Overcommit recursos

  3. ❌ Ignorar métricas

  4. ❌ Configuração genérica

  5. ❌ Negligenciar monitoramento

Resource Templates πŸ“‹

Development Template

resources: limits: cpu: 0.5 memory: 512M reservations: cpu: 0.1 memory: 128M

Production Template

resources: limits: cpu: 2 memory: 2G reservations: cpu: 1 memory: 1G

Troubleshooting Guide πŸ”

Common Issues

  1. OOM Kills

    # Verificar logs dmesg | grep -i kill # Aumentar limite docker update --memory 1g container_id
  2. CPU Throttling

    # Verificar throttling docker stats --no-stream --format "{{.CPUPerc}}" # Ajustar limite docker update --cpus 2 container_id

Waifu Resource Tips πŸ’‘

Quick Reference πŸ“š

Resource Commands

# CPU --cpus=<value> --cpu-shares=<value> --cpuset-cpus=<value> # Memory --memory=<value> --memory-swap=<value> --memory-reservation=<value> # Storage --device-write-bps=<value> --device-read-bps=<value> # Network --network-bandwidth=<value>

Monitoring Commands

# Basic monitoring docker stats # Detailed info docker inspect # Resource update docker update

Next Steps 🎯

  1. Container Monitoring

  2. Performance Optimization

  3. Troubleshooting Guide

16 abril 2025