Como Rodar OpenClaw com Docker: Guia Completo para Iniciantes

Como Rodar OpenClaw com Docker: Guia Completo

Docker é a forma mais segura e limpa de rodar o OpenClaw. Neste tutorial, você vai aprender a configurar tudo do zero, mesmo sem experiência prévia com containers.

Por Que Usar Docker?

Vantagens:

  • Isolamento: O OpenClaw roda separado do seu sistema
  • 🧹 Limpeza: Fácil de remover sem deixar rastros
  • 🔄 Reprodutibilidade: Mesma configuração em qualquer máquina
  • 🛡 Segurança: Controle granular de permissões

Pré-requisitos

Antes de começar, você precisa:

  1. Docker instalado - Guia oficial
  2. Chave de API de um provedor de IA (Anthropic, OpenAI, etc.)
  3. Terminal básico (funciona em Linux, macOS e Windows com WSL)

Verificando a Instalação do Docker

docker --version
# Docker version 24.0.x ou superior

Instalação Rápida (5 minutos)

1. Crie a Estrutura de Diretórios

mkdir -p ~/openclaw/{config,workspace,memory}
cd ~/openclaw

2. Crie o Arquivo de Configuração

cat > config/config.yaml << 'EOF'
model: anthropic/claude-sonnet-4-20250514

anthropic:
  apiKey: ${ANTHROPIC_API_KEY}

# Ou para OpenAI:
# openai:
#   apiKey: ${OPENAI_API_KEY}

workspace:
  path: /workspace

memory:
  enabled: true
  path: /memory
EOF

3. Rode o Container

docker run -d \
  --name openclaw \
  -e ANTHROPIC_API_KEY="sua-chave-aqui" \
  -v ~/openclaw/config:/root/.config/openclaw \
  -v ~/openclaw/workspace:/workspace \
  -v ~/openclaw/memory:/memory \
  --restart unless-stopped \
  ghcr.io/openclaw/openclaw:latest \
  gateway start

Pronto! Seu OpenClaw está rodando.

Verificando se Está Funcionando

# Ver logs
docker logs openclaw

# Status do container
docker ps | grep openclaw

# Testar interação
docker exec -it openclaw openclaw chat "Olá, tudo bem?"

Configuração Avançada (Segurança Extra)

Para ambientes de produção ou se você quer máxima segurança:

Docker Compose com Hardening

Crie docker-compose.yml:

version: '3.8'

services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    
    # Segurança
    user: "1000:1000"
    read_only: true
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    
    # Limites de recursos
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 2G
        reservations:
          cpus: '0.5'
          memory: 512M
    
    # Volumes
    volumes:
      - ./config:/root/.config/openclaw:ro
      - ./workspace:/workspace
      - ./memory:/memory
      - /tmp  # Necessário para algumas operações
    
    # Variáveis de ambiente
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    
    # Rede isolada
    networks:
      - openclaw-net
    
    # Reinício automático
    restart: unless-stopped
    
    command: gateway start

networks:
  openclaw-net:
    driver: bridge

Rodando com Docker Compose

# Criar arquivo .env com sua chave
echo "ANTHROPIC_API_KEY=sua-chave-aqui" > .env

# Iniciar
docker-compose up -d

# Ver logs
docker-compose logs -f

# Parar
docker-compose down

Conectando Canais de Mensagem

WhatsApp

docker exec -it openclaw openclaw channel add whatsapp

# Escaneie o QR code que aparecer

Telegram

  1. Crie um bot com @BotFather
  2. Copie o token
  3. Configure:
docker exec -it openclaw openclaw channel add telegram --token "SEU_TOKEN"

Atualizando o OpenClaw

# Parar container atual
docker stop openclaw
docker rm openclaw

# Baixar nova versão
docker pull ghcr.io/openclaw/openclaw:latest

# Rodar novamente (mesmo comando de antes)
docker run -d \
  --name openclaw \
  -e ANTHROPIC_API_KEY="sua-chave-aqui" \
  -v ~/openclaw/config:/root/.config/openclaw \
  -v ~/openclaw/workspace:/workspace \
  -v ~/openclaw/memory:/memory \
  --restart unless-stopped \
  ghcr.io/openclaw/openclaw:latest \
  gateway start

Troubleshooting

Container não inicia

# Ver logs detalhados
docker logs openclaw --tail 50

# Verificar configuração
docker exec openclaw cat /root/.config/openclaw/config.yaml

Erro de permissão

# Ajustar permissões dos volumes
sudo chown -R 1000:1000 ~/openclaw/

WhatsApp desconecta frequentemente

Adicione persistência da sessão:

-v ~/openclaw/whatsapp-session:/root/.local/share/openclaw/whatsapp

Alto uso de memória

Limite no Docker:

docker run --memory="1g" --memory-swap="2g" ...

Backup e Restauração

Backup

# Parar para garantir consistência
docker stop openclaw

# Backup
tar -czvf openclaw-backup-$(date +%Y%m%d).tar.gz ~/openclaw/

# Reiniciar
docker start openclaw

Restauração

# Parar e remover
docker stop openclaw
docker rm openclaw

# Restaurar
tar -xzvf openclaw-backup-YYYYMMDD.tar.gz -C ~/

# Iniciar novamente
# (mesmo comando docker run de antes)

Dicas de Produção

  1. Use secrets do Docker em vez de variáveis de ambiente para as chaves de API
  2. Configure logs rotativos para evitar disco cheio
  3. Monitore recursos com docker stats openclaw
  4. Faça backups automáticos com cron

Exemplo de Cron para Backup Diário

# Adicionar ao crontab (crontab -e)
0 3 * * * docker stop openclaw && tar -czvf /backup/openclaw-$(date +\%Y\%m\%d).tar.gz ~/openclaw/ && docker start openclaw

Próximos Passos

Agora que seu OpenClaw está rodando com Docker:


Precisa de ajuda? Entre no Discord da comunidade ou abra uma issue no GitHub.