Docker (opcional)
Docker é opcional. Use-o somente se você quiser um gateway em contêiner ou validar o fluxo do Docker.O Docker é adequado para mim?
- Sim: você quer um ambiente de gateway isolado e descartável ou executar o OpenClaw em um host sem instalações locais.
- Não: você está executando na sua própria máquina e só quer o loop de desenvolvimento mais rápido. Use o fluxo de instalação normal.
- Observação sobre sandbox: o sandbox de agente também usa Docker, mas não exige que o gateway completo seja executado em Docker. Consulte Sandboxing.
Pré-requisitos
- Docker Desktop (ou Docker Engine) + Docker Compose v2
- Pelo menos 2 GB de RAM para o build da imagem (
pnpm installpode ser encerrado por OOM em hosts com 1 GB com saída 137) - Espaço em disco suficiente para imagens e logs
- Se estiver executando em um VPS/host público, revise
Endurecimento de segurança para exposição de rede,
especialmente a política de firewall
DOCKER-USERdo Docker.
Gateway em contêiner
Build da imagem
A partir da raiz do repositório, execute o script de configuração:Isso faz o build local da imagem do gateway. Para usar uma imagem pré-construída em vez disso:Imagens pré-construídas são publicadas no
GitHub Container Registry.
Tags comuns:
main, latest, <version> (por exemplo, 2026.2.26).Concluir o onboarding
O script de configuração executa o onboarding automaticamente. Ele irá:
- solicitar chaves de API de provedores
- gerar um token de gateway e gravá-lo em
.env - iniciar o gateway via Docker Compose
openclaw-gateway diretamente. openclaw-cli é para comandos que você executa depois
que o contêiner do gateway já existe.Abrir a Control UI
Abra
http://127.0.0.1:18789/ no navegador e cole o secret compartilhado
configurado em Settings. O script de configuração grava um token em .env por
padrão; se você mudar a config do contêiner para auth por senha, use essa
senha no lugar.Precisa da URL novamente?Fluxo manual
Se você preferir executar cada etapa manualmente em vez de usar o script de configuração:Execute
docker compose a partir da raiz do repositório. Se você tiver ativado OPENCLAW_EXTRA_MOUNTS
ou OPENCLAW_HOME_VOLUME, o script de configuração grava docker-compose.extra.yml;
inclua-o com -f docker-compose.yml -f docker-compose.extra.yml.Como
openclaw-cli compartilha o namespace de rede de openclaw-gateway, ele é uma
ferramenta de pós-inicialização. Antes de docker compose up -d openclaw-gateway, execute o onboarding
e as gravações de config em tempo de setup por meio de openclaw-gateway com
--no-deps --entrypoint node.Variáveis de ambiente
O script de configuração aceita estas variáveis de ambiente opcionais:| Variável | Finalidade |
|---|---|
OPENCLAW_IMAGE | Usar uma imagem remota em vez de fazer build localmente |
OPENCLAW_DOCKER_APT_PACKAGES | Instalar pacotes apt extras durante o build (nomes separados por espaço) |
OPENCLAW_EXTENSIONS | Pré-instalar dependências de extensões no build (nomes separados por espaço) |
OPENCLAW_EXTRA_MOUNTS | Bind mounts extras do host (separados por vírgula em source:target[:opts]) |
OPENCLAW_HOME_VOLUME | Persistir /home/node em um volume nomeado do Docker |
OPENCLAW_SANDBOX | Opt-in para bootstrap de sandbox (1, true, yes, on) |
OPENCLAW_DOCKER_SOCKET | Substituir o caminho do socket do Docker |
Health checks
Endpoints de sondagem do contêiner (não exigem auth):HEALTHCHECK integrado que faz ping em /healthz.
Se as verificações continuarem falhando, o Docker marca o contêiner como unhealthy e
sistemas de orquestração podem reiniciá-lo ou substituí-lo.
Snapshot autenticado de health profundo:
LAN vs loopback
scripts/docker/setup.sh define OPENCLAW_GATEWAY_BIND=lan por padrão para que o acesso do host a
http://127.0.0.1:18789 funcione com a publicação de portas do Docker.
lan(padrão): o navegador do host e a CLI do host podem alcançar a porta publicada do gateway.loopback: somente processos dentro do namespace de rede do contêiner podem alcançar o gateway diretamente.
Use valores de modo de bind em
gateway.bind (lan / loopback / custom /
tailnet / auto), não aliases de host como 0.0.0.0 ou 127.0.0.1.Armazenamento e persistência
O Docker Compose monta por bindOPENCLAW_CONFIG_DIR em /home/node/.openclaw e
OPENCLAW_WORKSPACE_DIR em /home/node/.openclaw/workspace, portanto esses caminhos
sobrevivem à substituição do contêiner.
Esse diretório de config montado é onde o OpenClaw mantém:
openclaw.jsonpara a config de comportamentoagents/<agentId>/agent/auth-profiles.jsonpara auth OAuth/chave de API de provedores armazenada.envpara secrets de runtime baseados em env, comoOPENCLAW_GATEWAY_TOKEN
media/, arquivos JSONL de sessão, cron/runs/*.jsonl
e logs de arquivo rotativos em /tmp/openclaw/.
Helpers de shell (opcional)
Para facilitar o gerenciamento diário do Docker, instale oClawDock:
scripts/shell-helpers/clawdock-helpers.sh, execute novamente o comando de instalação acima para que seu arquivo local de helper acompanhe o novo local.
Depois use clawdock-start, clawdock-stop, clawdock-dashboard etc. Execute
clawdock-help para ver todos os comandos.
Consulte ClawDock para o guia completo do helper.
Ativar o sandbox de agente para o gateway Docker
Ativar o sandbox de agente para o gateway Docker
docker.sock somente depois que os pré-requisitos do sandbox passam. Se
a configuração do sandbox não puder ser concluída, o script redefine agents.defaults.sandbox.mode
para off.Automação / CI (não interativo)
Automação / CI (não interativo)
Desative a alocação de pseudo-TTY do Compose com
-T:Observação de segurança sobre rede compartilhada
Observação de segurança sobre rede compartilhada
openclaw-cli usa network_mode: "service:openclaw-gateway" para que comandos da CLI
possam alcançar o gateway por 127.0.0.1. Trate isso como um limite de
confiança compartilhado. A config do Compose remove NET_RAW/NET_ADMIN e ativa
no-new-privileges em openclaw-cli.Permissões e EACCES
Permissões e EACCES
A imagem é executada como
node (uid 1000). Se você vir erros de permissão em
/home/node/.openclaw, verifique se seus bind mounts do host pertencem ao uid 1000:Rebuilds mais rápidos
Rebuilds mais rápidos
Ordene seu Dockerfile para que as camadas de dependência sejam armazenadas em cache. Isso evita executar novamente
pnpm install a menos que os lockfiles mudem:Opções de contêiner para usuários avançados
Opções de contêiner para usuários avançados
A imagem padrão prioriza segurança e é executada como
node sem privilégios de root. Para um
contêiner mais completo:- Persistir
/home/node:export OPENCLAW_HOME_VOLUME="openclaw_home" - Incorporar dependências do sistema:
export OPENCLAW_DOCKER_APT_PACKAGES="git curl jq" - Instalar navegadores do Playwright:
- Persistir downloads do navegador: defina
PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwrighte useOPENCLAW_HOME_VOLUMEouOPENCLAW_EXTRA_MOUNTS.
OAuth do OpenAI Codex (Docker headless)
OAuth do OpenAI Codex (Docker headless)
Se você escolher OAuth do OpenAI Codex no assistente, ele abrirá uma URL no navegador. Em
configurações Docker ou headless, copie a URL completa de redirecionamento em que você cair e cole-a
de volta no assistente para concluir a auth.
Metadados da imagem base
Metadados da imagem base
A imagem Docker principal usa
node:24-bookworm e publica anotações OCI da imagem base
incluindo org.opencontainers.image.base.name,
org.opencontainers.image.source e outras. Consulte
Anotações de imagem OCI.Executando em um VPS?
Consulte Hetzner (Docker VPS) e Docker VM Runtime para etapas de implantação em VM compartilhada, incluindo incorporação de binários, persistência e atualizações.Sandbox de agente
Quandoagents.defaults.sandbox está ativado, o gateway executa a execução de tools do agente
(shell, leitura/gravação de arquivos etc.) dentro de contêineres Docker isolados, enquanto o
próprio gateway permanece no host. Isso oferece uma barreira rígida em torno de sessões de agente
não confiáveis ou multi-tenant sem colocar todo o gateway em contêiner.
O escopo do sandbox pode ser por agente (padrão), por sessão ou compartilhado. Cada escopo
recebe seu próprio workspace montado em /workspace. Você também pode configurar
políticas de allow/deny de tools, isolamento de rede, limites de recursos e contêineres de navegador.
Para configuração completa, imagens, observações de segurança e perfis multi-agent, consulte:
- Sandboxing — referência completa de sandbox
- OpenShell — acesso interativo de shell aos contêineres de sandbox
- Sandbox e Tools de Multi-Agent — sobrescritas por agente
Ativação rápida
Solução de problemas
Imagem ausente ou contêiner de sandbox não inicia
Imagem ausente ou contêiner de sandbox não inicia
Faça o build da imagem de sandbox com
scripts/sandbox-setup.sh
ou defina agents.defaults.sandbox.docker.image como sua imagem personalizada.
Os contêineres são criados automaticamente por sessão sob demanda.Erros de permissão no sandbox
Erros de permissão no sandbox
Defina
docker.user como um UID:GID que corresponda à propriedade do workspace montado,
ou execute chown na pasta do workspace.Tools personalizadas não encontradas no sandbox
Tools personalizadas não encontradas no sandbox
O OpenClaw executa comandos com
sh -lc (shell de login), que carrega
/etc/profile e pode redefinir o PATH. Defina docker.env.PATH para prefixar seus
caminhos de tools personalizadas, ou adicione um script em /etc/profile.d/ no seu Dockerfile.Encerrado por OOM durante o build da imagem (saída 137)
Encerrado por OOM durante o build da imagem (saída 137)
A VM precisa de pelo menos 2 GB de RAM. Use uma classe de máquina maior e tente novamente.
Unauthorized ou pairing required na Control UI
Unauthorized ou pairing required na Control UI
O alvo do gateway mostra ws://172.x.x.x ou erros de pairing da CLI Docker
O alvo do gateway mostra ws://172.x.x.x ou erros de pairing da CLI Docker
Redefina o modo e o bind do gateway:
Relacionados
- Visão geral de instalação — todos os métodos de instalação
- Podman — alternativa ao Docker com Podman
- ClawDock — configuração comunitária com Docker Compose
- Updating — como manter o OpenClaw atualizado
- Configuration — configuração do gateway após a instalação