# Cómo ejecutar Claude Code en Docker como sandbox

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

Ejecuta Claude Code en Docker para que el agente solo vea la carpeta de tu proyecto: receta docker run casera, sus límites y el contenedor de un clic en AgentVera.

**En resumen:**

- Un contenedor limita lo que el agente puede leer y modificar en disco a las carpetas que montas; no corta la red salvo que lo añadas tú.
- A mano necesitas una imagen con el CLI, el proyecto montado, tu id de usuario y un lugar para el inicio de sesión; AgentVera hace todo eso con una casilla.
- En AgentVera, los agentes Claude Code y Codex pueden ejecutarse en un contenedor que se elimina al detener el agente; solo quedan los cambios de la carpeta del proyecto.

**Para ejecutar Claude Code en Docker, inícialo en un contenedor que monte solo la carpeta de tu proyecto: el agente puede trabajar ahí con libertad mientras el resto de tu disco queda fuera de su alcance.** Puedes hacerlo a mano con una imagen y una larga línea de `docker run`, o marcar una casilla en AgentVera y obtener el mismo contenedor ya preparado, con el inicio de sesión, la identidad de git y la propiedad de los archivos resueltos.

Esta guía cubre de qué te protege un contenedor (y de qué no), la ruta casera y cómo funcionan los agentes Docker de AgentVera.

## Qué protege un contenedor y qué no

Un agente de código ejecuta comandos como tu usuario. Sin sandbox puede leer todos los archivos que tú puedes: otros repos, `~/.ssh`, credenciales de la nube, dotfiles. La mayor parte del tiempo no pasa nada. El riesgo es el raro comando erróneo, una limpieza equivocada o una inyección de prompt escondida en una página web o en el README de una dependencia.

| Riesgo | Terminal normal | Contenedor Docker |
| --- | --- | --- |
| Lee archivos fuera del proyecto | Sí | Solo lo que montas |
| Lee claves SSH y credenciales | Sí | No, salvo que se monten |
| Borra archivos fuera del proyecto | Posible | Fuera de su alcance |
| Instala herramientas globales en tu máquina | Posible | Solo dentro del contenedor, desaparecen al salir |
| Cambia o borra archivos del proyecto | Posible | Sigue siendo posible |
| Llega a internet | Sí | Sí, por defecto |

Dos filas importan más. La carpeta del proyecto sigue siendo escribible, así que haz commit a menudo o usa un [git worktree](/es/blog/git-worktree-parallel-agents/). Y Docker no corta la red por sí solo: si lo quieres, necesitas reglas de red adicionales. Para una visión más amplia de las amenazas, consulta [seguridad de agentes de código con IA](/es/blog/ai-coding-agent-security/).

## Ejecutar Claude Code en Docker a mano

La ruta casera necesita tres piezas: una imagen, un comando de ejecución y una decisión sobre el inicio de sesión.

### 1. Construye una imagen con el CLI

Basta un Dockerfile pequeño:

```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 .
```

Añade lo que tu proyecto necesite para compilar y probar, como un compilador, un cliente de base de datos o un runtime de lenguaje.

### 2. Inícialo montando solo el proyecto

```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
```

Qué hace cada parte:

1. `--rm` elimina el contenedor cuando Claude Code termina.
2. `--user` se ejecuta con tu propio id de usuario, así que los archivos nuevos del proyecto no pertenecen a root.
3. `-v "$PWD":/work` monta el proyecto y nada más de tu disco.
4. Un `HOME` desechable en tmpfs significa que el CLI tiene dónde escribir sus ajustes.

### 3. Resuelve el inicio de sesión y el historial

Con un home desechable, Claude Code olvida tu sesión y tus conversaciones en cada ejecución. Puedes montar una carpeta de configuración dedicada, o pasar una API key con `-e ANTHROPIC_API_KEY`. Pasa los secretos por nombre (`-e NAME`) en lugar de `-e NAME=value`, para que el valor no aparezca en el historial de tu shell.

Anthropic también publica una configuración devcontainer de referencia para Claude Code con firewall; si trabajas con devcontainers, lee la documentación de Claude Code al respecto.

### Dónde se vuelve tediosa la ruta manual

Cada agente nuevo implica los mismos flags otra vez. El resume, las estadísticas de uso y los ajustes por proyecto viven en una carpeta que el contenedor no ve salvo que la montes. Los commits de git dentro del contenedor no tienen nombre salvo que montes `~/.gitconfig`. Y si ejecutas varios agentes a la vez, acabas haciendo malabares con varios de estos comandos.

## Ejecutar Claude Code en Docker con AgentVera

[AgentVera](/es/) es una app de escritorio para macOS, Windows y Linux que ejecuta CLIs de agentes de código en paralelo en terminales reales. Para los agentes Claude Code y Codex, el diálogo del agente tiene una casilla **Run in a Docker container**. Su indicación lo dice claramente: el agente solo ve la carpeta del proyecto; los demás archivos, programas y claves SSH de este ordenador permanecen cerrados para él.

### Pasos

1. Inicia Docker Desktop, Colima u OrbStack.
2. Abre un proyecto en AgentVera y añade un agente Claude Code o Codex.
3. Marca **Run in a Docker container**. Opcionalmente define **Image**, **CPU** y **Memory (GB)**; deja la memoria vacía para no poner límite.
4. Inicia el agente.

En el primer uso AgentVera construye su imagen de agente, `agentvera/agent:1`, y ves la salida de la construcción en el terminal del agente. La imagen se basa en `node:22-bookworm-slim` con git, ripgrep, jq, python3, make, g++ y algunas herramientas más, además de Claude Code y Codex. Si defines tu propia imagen, debe contener el comando `claude` o `codex`; una imagen que no esté en tu máquina se descarga.

La cabecera del agente muestra entonces un chip **Docker**, y el panel indica que se ejecuta en un contenedor Docker junto con el nombre de la imagen. También puedes pasar un agente existente a un contenedor, o sacarlo de él, editándolo; el agente se reinicia y conserva la misma conversación.

### Lo que AgentVera prepara por ti

| Aspecto | Qué hace AgentVera |
| --- | --- |
| Archivos del proyecto | Monta la carpeta del proyecto (en un worktree, también su repositorio) |
| Sesión, resume, estadísticas | Monta la carpeta de conversaciones del CLI, así que resume, estadísticas de uso y presupuestos funcionan como siempre |
| Identidad de git | Monta `~/.gitconfig` en solo lectura, así que los commits llevan tu nombre |
| Propiedad de archivos | Se ejecuta con tu id de usuario en macOS y Linux, así que los archivos no son de root |
| Carpeta home | Un home nuevo en tmpfs, que desaparece al detenerse el contenedor |
| Endurecimiento | `no-new-privileges`, un límite de procesos y varias Linux capabilities eliminadas |
| Secretos | Valores de entorno pasados por nombre, así que los tokens no aparecen en la lista de procesos |
| Herramientas de AgentVera | Los hooks y servidores MCP como el mapa del proyecto, el tablero y la mensajería entre agentes siguen funcionando |

Cuando el agente se detiene, el contenedor se elimina. Solo quedan los cambios de la carpeta del proyecto.

Algunas cosas que conviene saber:

- **La red está abierta.** En Linux el contenedor usa la red del host; en otros sistemas llega a los servidores locales de AgentVera mediante `host.docker.internal`. El contenedor limita archivos, no internet.
- **Sesión en macOS.** Claude Code guarda su sesión en el llavero de macOS, que un contenedor no puede leer, así que quizá tengas que iniciar sesión una vez dentro.
- **Claude in Chrome** no se usa dentro de un contenedor. El navegador de AgentVera, que funciona mediante Playwright MCP, es una opción aparte en el mismo diálogo.
- **Solo agentes locales.** Los agentes remotos por SSH se ejecutan en su servidor y no admiten esta opción.

Los agentes Docker forman parte del plan gratuito. La app también tiene una página aparte de gestor de Docker para tus propios contenedores y proyectos compose; consulta la [página de la función Docker](/es/features/docker/).

## Combina el contenedor con el nivel de permisos adecuado

Un contenedor es lo que hace razonable un nivel de permisos más laxo. Los agentes de AgentVera tienen tres niveles: **Ask**, **Auto** y **Full access**. La indicación de Full access dice: nunca pregunta, mejor en un worktree o contenedor.

Una configuración práctica para una tarea larga:

1. Crea el agente en su propio git worktree, para que sus cambios queden en una rama aparte.
2. Marca **Run in a Docker container**.
3. Elige **Auto** o **Full access**, según cuánto confíes en la tarea.
4. Cuando termine, revisa el diff antes de hacer merge.

Si estás sopesando `--dangerously-skip-permissions`, [saltarse los permisos en Claude Code](/es/blog/claude-code-skip-permissions/) cubre las contrapartidas, y [ejecutar Claude Code por la noche](/es/blog/run-claude-code-overnight/) muestra cómo encaja un contenedor en una ejecución que nadie vigila.

## Lista de comprobación rápida

- El contenedor monta solo el proyecto, no tu carpeta home.
- Los archivos nuevos del proyecto te pertenecen a ti, no a root.
- Los secretos se pasan por nombre, no se incrustan en la imagen.
- El trabajo tiene commit, o el agente está en una rama de worktree.
- Sabes que la red sigue abierta y has añadido reglas si eso importa.

[Descarga AgentVera](/es/download/) para ejecutar Claude Code y Codex en contenedores junto al resto de tus agentes, o lee más en la página de [agentes en Docker](/es/features/agents-in-docker/).

## Preguntas frecuentes

**¿Por qué ejecutar Claude Code en Docker?** Un agente en tu máquina puede leer todo lo que puede leer tu usuario: otros proyectos, claves SSH, credenciales de la nube, datos del navegador. En un contenedor solo ve las carpetas que montas, así que un comando erróneo o una inyección de prompt tienen mucho menos a su alcance.

**¿Un contenedor Docker aísla al agente de internet?** No por defecto. Un contenedor normal tiene acceso a la red. Docker limita archivos y procesos; si además quieres restringir la red, necesitas tus propias reglas de firewall o de red. Los contenedores de agentes de AgentVera mantienen la red abierta para que el CLI llegue a su API.

**¿Qué agentes puede ejecutar AgentVera en un contenedor?** Los agentes Claude Code y Codex que se ejecutan en tu propio ordenador. Los agentes remotos por SSH se ejecutan en su servidor y no usan esta opción. El contenedor necesita Docker Desktop, Colima u OrbStack en marcha.

**¿Tengo que volver a iniciar sesión dentro del contenedor?** Normalmente no, porque AgentVera monta en el contenedor la carpeta de conversaciones del CLI. En macOS, Claude Code guarda su sesión en el llavero, que un contenedor no puede leer, así que quizá tengas que iniciar sesión una vez dentro.

**¿Es seguro usar el modo de acceso total dentro de un contenedor?** Es mucho más seguro que en la máquina desnuda, y por eso la indicación de Full access en AgentVera dice que es mejor en un worktree o contenedor. El agente aún puede cambiar o borrar archivos de la carpeta del proyecto, así que mantén tu trabajo con commit y revisa el diff.

---

**Sobre AgentVera.** AgentVera es una app de escritorio para macOS, Windows y Linux, desarrollada por Solviera Teknoloji. Ejecuta 18 agentes de programación con IA (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) en paralelo, por proyecto, en terminales reales con las instalaciones y sesiones de CLI del propio usuario. El plan gratuito tiene agentes ilimitados. Descargar: https://agentvera.dev/es/download/ · Precios: https://agentvera.dev/es/pricing/
