# Como rodar o Claude Code no Docker como sandbox

URL: https://agentvera.dev/pt/blog/run-claude-code-in-docker/ · Publicado: 2026-10-24

Rode o Claude Code no Docker para o agente ver só a pasta do projeto: uma receita de docker run feita à mão, seus limites e o contêiner de um clique no AgentVera.

**Resumo:**

- Um contêiner limita o que o agente pode ler e alterar no disco às pastas que você monta; ele não corta a rede, a não ser que você configure isso.
- Na mão, você precisa de uma imagem com a CLI, o projeto montado, seu user id e um lugar para o login; o AgentVera faz tudo isso com uma caixa de seleção.
- No AgentVera, agentes Claude Code e Codex podem rodar em um contêiner que é removido quando o agente para; só as mudanças na pasta do projeto ficam.

**Para rodar o Claude Code no Docker, inicie-o em um contêiner que monta só a pasta do projeto: assim o agente trabalha à vontade ali enquanto o resto do seu disco fica fora de alcance.** Dá para fazer isso na mão com uma imagem e uma linha longa de `docker run`, ou marcar uma caixa no AgentVera e receber o mesmo contêiner já configurado, com login, identidade do git e dono dos arquivos resolvidos.

Este guia mostra do que um contêiner protege (e do que não protege), o caminho faça-você-mesmo e como funcionam os agentes Docker do AgentVera.

## O que um contêiner protege, e o que não protege

Um agente de código roda comandos como o seu usuário. Sem sandbox, ele pode ler qualquer arquivo que você lê: outros repositórios, `~/.ssh`, credenciais de nuvem, dotfiles. Na maior parte do tempo, tudo bem. O risco é aquele comando ruim raro, uma limpeza confusa ou uma prompt injection escondida em uma página web ou no README de uma dependência.

| Risco | Terminal comum | Contêiner Docker |
| --- | --- | --- |
| Lê arquivos fora do projeto | Sim | Só o que você monta |
| Lê chaves SSH e credenciais | Sim | Não, a menos que estejam montadas |
| Apaga arquivos fora do projeto | Possível | Fora de alcance |
| Instala ferramentas globais na sua máquina | Possível | Só dentro do contêiner, somem ao sair |
| Altera ou apaga arquivos no projeto | Possível | Ainda possível |
| Acessa a internet | Sim | Sim, por padrão |

Duas linhas importam mais. A pasta do projeto continua gravável, então faça commit com frequência ou use um [git worktree](/pt/blog/git-worktree-parallel-agents/). E o Docker não corta a rede sozinho: se você quer isso, precisa de regras de rede extras. Para uma visão mais ampla das ameaças, veja [segurança de agentes de código com IA](/pt/blog/ai-coding-agent-security/).

## Rodar o Claude Code no Docker na mão

O caminho faça-você-mesmo tem três partes: uma imagem, um comando de execução e uma decisão sobre o login.

### 1. Monte uma imagem com a CLI

Um Dockerfile pequeno basta:

```dockerfile
FROM node:22-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
      git curl ca-certificates ripgrep openssh-client less procps jq python3 \
    && rm -rf /var/lib/apt/lists/*
RUN npm install -g @anthropic-ai/claude-code
```

```bash
docker build -t my-claude .
```

Adicione o que o seu projeto precisar para build e testes, como um compilador, um cliente de banco de dados ou um runtime de linguagem.

### 2. Inicie com só o projeto montado

```bash
docker run --rm -it --init \
  --user "$(id -u):$(id -g)" \
  -v "$PWD":/work -w /work \
  -e HOME=/home/agent --tmpfs /home/agent \
  my-claude claude
```

O que cada parte faz:

1. `--rm` remove o contêiner quando o Claude Code sai.
2. `--user` roda com o seu próprio user id, então os arquivos novos no projeto não ficam com dono root.
3. `-v "$PWD":/work` monta o projeto, e nada mais do seu disco.
4. Um `HOME` descartável em tmpfs dá à CLI um lugar para gravar as configurações.

### 3. Resolva o login e o histórico

Com uma home descartável, o Claude Code esquece seu login e suas conversas a cada execução. Em vez disso, você pode montar uma pasta de configuração dedicada ou passar uma chave de API com `-e ANTHROPIC_API_KEY`. Passe segredos pelo nome (`-e NAME`) em vez de `-e NAME=value`, para o valor não aparecer no histórico do shell.

A Anthropic também publica uma configuração de devcontainer de referência para o Claude Code, com firewall; se você trabalha com devcontainers, veja a documentação do Claude Code sobre isso.

### Onde o caminho manual fica cansativo

Cada agente novo significa repetir as mesmas flags. Resume, estatísticas de uso e configurações por projeto ficam em uma pasta que o contêiner não vê, a menos que você a monte. Commits do git dentro do contêiner ficam sem nome se você não montar o `~/.gitconfig`. E se você roda vários agentes ao mesmo tempo, fica equilibrando vários desses comandos.

## Rodar o Claude Code no Docker com o AgentVera

O [AgentVera](/pt/) é um app desktop para macOS, Windows e Linux que roda CLIs de agentes de código lado a lado em terminais de verdade. Para agentes Claude Code e Codex, a janela do agente tem a caixa **Run in a Docker container** (rodar em um contêiner Docker). A dica dela diz com todas as letras: o agente vê só a pasta do projeto; outros arquivos, programas e chaves SSH deste computador ficam fechados para ele.

### Passos

1. Inicie o Docker Desktop, o Colima ou o OrbStack.
2. Abra um projeto no AgentVera e adicione um agente Claude Code ou Codex.
3. Marque **Run in a Docker container**. Se quiser, defina **Image**, **CPU** e **Memory (GB)**; deixe a memória vazia para não ter limite.
4. Inicie o agente.

No primeiro uso, o AgentVera monta a imagem de agente dele, `agentvera/agent:1`, e você acompanha a saída do build no terminal do agente. A imagem é baseada em `node:22-bookworm-slim`, com git, ripgrep, jq, python3, make, g++ e algumas outras ferramentas, além do Claude Code e do Codex. Se você definir sua própria imagem, ela precisa conter o comando `claude` ou `codex`; uma imagem que não está na sua máquina é baixada.

Depois disso, o cabeçalho do agente mostra um chip **Docker**, e o painel diz que ele está rodando em um contêiner Docker, junto com o nome da imagem. Você também pode colocar um agente existente dentro ou fora de um contêiner editando-o; o agente reinicia e mantém a mesma conversa.

### O que o AgentVera configura para você

| Ponto | O que o AgentVera faz |
| --- | --- |
| Arquivos do projeto | Monta a pasta do projeto (em um worktree, também o repositório dele) |
| Login, resume, estatísticas | Monta a pasta de conversas da CLI, então resume, estatísticas de uso e orçamentos funcionam normalmente |
| Identidade do git | Monta o `~/.gitconfig` como somente leitura, então os commits levam o seu nome |
| Dono dos arquivos | Roda com o seu user id no macOS e no Linux, então os arquivos não ficam com dono root |
| Pasta home | Uma home nova em tmpfs, que some quando o contêiner para |
| Endurecimento | `no-new-privileges`, um limite de processos e várias capabilities do Linux removidas |
| Segredos | Valores de ambiente passados pelo nome, então os tokens não aparecem na lista de processos |
| Ferramentas do AgentVera | Hooks e servidores MCP, como o mapa do projeto, o quadro e as mensagens entre agentes, continuam funcionando |

Quando o agente para, o contêiner é removido. Só as mudanças na pasta do projeto ficam.

Algumas coisas para saber:

- **A rede fica aberta.** No Linux o contêiner usa a rede do host; nos outros sistemas ele alcança os servidores locais do AgentVera via `host.docker.internal`. O contêiner limita arquivos, não a internet.
- **Login no macOS.** O Claude Code guarda o login no Keychain do macOS, que um contêiner não consegue ler, então talvez você precise entrar uma vez lá dentro.
- **O Claude in Chrome** não é usado dentro de um contêiner. O navegador do AgentVera, que roda via Playwright MCP, é uma opção separada na mesma janela.
- **Só agentes locais.** Agentes remotos via SSH rodam no servidor deles e não aceitam essa opção.

Os agentes Docker fazem parte do plano gratuito. O app também tem uma página separada de gerenciamento do Docker para seus próprios contêineres e projetos compose; veja a [página do recurso Docker](/pt/features/docker/).

## Combine o contêiner com o nível de permissão certo

É o contêiner que torna razoável um nível de permissão mais solto. Os agentes do AgentVera têm três níveis: **Ask**, **Auto** e **Full access**. A dica de Full access diz: nunca pergunta, melhor em um worktree ou contêiner.

Uma configuração prática para uma tarefa longa:

1. Crie o agente no próprio git worktree, para as mudanças ficarem em uma branch separada.
2. Marque **Run in a Docker container**.
3. Escolha **Auto** ou **Full access**, conforme o quanto você confia na tarefa.
4. Quando terminar, revise o diff antes do merge.

Se você está pensando em usar `--dangerously-skip-permissions`, [pular permissões no Claude Code](/pt/blog/claude-code-skip-permissions/) cobre os prós e contras, e [rodar o Claude Code durante a noite](/pt/blog/run-claude-code-overnight/) mostra como um contêiner se encaixa em uma execução que ninguém está acompanhando.

## Checklist rápido

- O contêiner monta só o projeto, não a sua pasta home.
- Os arquivos novos no projeto são seus, não do root.
- Os segredos são passados pelo nome, não embutidos na imagem.
- O trabalho está commitado, ou o agente está em uma branch de worktree.
- Você sabe que a rede continua aberta e adicionou regras se isso importa.

[Baixe o AgentVera](/pt/download/) para rodar o Claude Code e o Codex em contêineres ao lado do resto dos seus agentes, ou leia mais na página de [agentes no Docker](/pt/features/agents-in-docker/).

## Perguntas frequentes

**Por que rodar o Claude Code no Docker?** Um agente na sua máquina pode ler tudo o que o seu usuário lê: outros projetos, chaves SSH, credenciais de nuvem, dados do navegador. Em um contêiner ele vê só as pastas que você monta, então um comando ruim ou uma prompt injection tem muito menos ao alcance.

**Um contêiner Docker desconecta o agente da internet?** Não por padrão. Um contêiner comum tem acesso à rede. O Docker limita arquivos e processos; se você também quer restringir a rede, precisa de regras de firewall ou de uma configuração de rede própria. Os contêineres de agente do AgentVera mantêm a rede aberta para a CLI alcançar sua API.

**Quais agentes o AgentVera pode rodar em um contêiner?** Agentes Claude Code e Codex que rodam no seu próprio computador. Agentes remotos via SSH rodam no servidor deles e não usam essa opção. O contêiner precisa do Docker Desktop, do Colima ou do OrbStack rodando.

**Preciso fazer login de novo dentro do contêiner?** Normalmente não, porque o AgentVera monta a pasta de conversas da CLI no contêiner. No macOS o Claude Code guarda o login no Keychain, que um contêiner não consegue ler, então talvez você precise entrar uma vez lá dentro.

**É seguro usar o modo de acesso total dentro de um contêiner?** É bem mais seguro do que na máquina direto, e por isso a dica de Full access do AgentVera diz que ele funciona melhor em um worktree ou contêiner. O agente ainda pode alterar ou apagar arquivos na pasta do projeto, então mantenha seu trabalho commitado e revise o diff.

---

**Sobre o AgentVera.** AgentVera é um app desktop para macOS, Windows e Linux, desenvolvido pela Solviera Teknoloji. Ele roda 18 agentes de programação com IA (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) lado a lado, por projeto, em terminais reais com as instalações e logins de CLI do próprio usuário. O plano gratuito tem agentes ilimitados. Baixar: https://agentvera.dev/pt/download/ · Preços: https://agentvera.dev/pt/pricing/
