Un contenedor de desarrollo, o dev container, te permite definir un entorno idéntico e aislado que cada ingeniero en tu equipo puede ejecutar. Con Claude Code instalado en ese contenedor, los comandos que Claude ejecuta se ejecutan dentro de él en lugar de en la máquina host, mientras que las ediciones a tus archivos de proyecto aparecen en tu repositorio local mientras trabajas. Esta página cubre instalar Claude Code en un contenedor de desarrollo y los temas de configuración que siguen. Cada tema es independiente, así que salta a los que coincidan con lo que necesitas configurar:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Persistir autenticación y configuración entre reconstrucciones
- Aplicar política organizacional
- Restringir salida de red
- Ejecutar sin solicitudes de permiso
Cómo funcionan los contenedores de desarrollo con tu editor
Cómo funcionan los contenedores de desarrollo con tu editor
claude en la terminal integrada; ambos se ejecutan dentro del contenedor y comparten la misma configuración de ~/.claude.Agregar Claude Code a tu contenedor de desarrollo
Claude Code se instala en cualquier contenedor de desarrollo a través de la Característica Claude Code Dev Container. La configuración funciona con cualquier herramienta que admita la especificación Dev Containers, como VS Code, GitHub Codespaces o IDEs de JetBrains. Los pasos a continuación usan VS Code como ejemplo. Cuando abres el contenedor en VS Code o Codespaces, la característica también agrega la extensión Claude Code VS Code; otros editores ignoran esa parte.Crear o actualizar devcontainer.json
Guarda lo siguiente como Reemplaza la línea
.devcontainer/devcontainer.json en tu repositorio, o agrega el bloque features a tu archivo existente.La etiqueta de versión al final, como :1.0, fija el script de instalación de la característica, no la versión de Claude Code. La característica instala la última versión de Claude Code, y Claude Code se actualiza automáticamente dentro del contenedor de forma predeterminada.Para fijar la versión de CLI o deshabilitar la actualización automática, consulta Aplicar política organizacional..devcontainer/devcontainer.json
image con la imagen base de tu proyecto o elimínala si tu archivo existente usa un Dockerfile.Reconstruir el contenedor
Abre la Paleta de Comandos de VS Code con
Cmd+Shift+P en Mac o Ctrl+Shift+P en Windows y Linux, y ejecuta Dev Containers: Rebuild Container.Para otras herramientas, sigue la acción de reconstrucción de esa herramienta: consulta reconstruir en GitHub Codespaces, la CLI de Dev Containers, o la documentación de contenedor de desarrollo de tu IDE.- Anthropic: inicia sesión a través de un navegador con tu cuenta de Claude o Anthropic Console
- Amazon Bedrock, Google Vertex AI o Microsoft Foundry: Claude Code usa tus credenciales del proveedor de nube, sin solicitud de navegador
containerEnv, un secreto de Codespaces, o la identidad de carga de trabajo de tu nube en lugar de montar archivos de credenciales desde el host. Consulta Amazon Bedrock, Google Vertex AI o Microsoft Foundry para la cadena de credenciales que Claude Code lee.
Consulta Elige tu proveedor de API para decidir qué camino se ajusta a tu organización.
Si el inicio de sesión del navegador se completa pero la devolución de llamada nunca llega al contenedor, copia el código mostrado en el navegador y pégalo en la solicitud
Paste code here if prompted en la terminal. Esto puede suceder cuando el reenvío de puertos del editor no enruta la devolución de llamada de localhost.Persistir autenticación y configuración entre reconstrucciones
De forma predeterminada, el directorio de inicio del contenedor se descarta en la reconstrucción, por lo que los ingenieros deben iniciar sesión nuevamente cada vez. Claude Code almacena su token de autenticación, configuración de usuario e historial de sesión en~/.claude. Monta un volumen nombrado en esa ruta para mantener este estado entre reconstrucciones.
El siguiente ejemplo monta un volumen en el directorio de inicio del usuario node:
devcontainer.json
/home/node con el directorio de inicio del remoteUser de tu contenedor. Si montas el volumen en algún lugar que no sea ~/.claude, establece CLAUDE_CONFIG_DIR en la ruta de montaje para que Claude Code lea y escriba allí.
Para aislar el estado por proyecto en lugar de compartir un volumen en todos los repositorios, incluye la variable ${devcontainerId} en el nombre de la fuente. La configuración de referencia usa source=claude-code-config-${devcontainerId} para este propósito.
En GitHub Codespaces, ~/.claude persiste entre detener e iniciar un codespace, pero aún se borra cuando reconstruyes el contenedor, por lo que el montaje de volumen anterior también se aplica allí. Para llevar la autenticación entre codespaces, almacena ANTHROPIC_API_KEY o un CLAUDE_CODE_OAUTH_TOKEN de claude setup-token como un secreto de Codespaces; Codespaces hace que los secretos estén disponibles como variables de entorno dentro del contenedor automáticamente.
Aplicar política organizacional
Un contenedor de desarrollo es un lugar conveniente para aplicar la política organizacional, porque la misma imagen y configuración se ejecutan en la máquina de cada ingeniero. Claude Code lee/etc/claude-code/managed-settings.json en Linux y lo aplica con la máxima precedencia en la jerarquía de configuración, por lo que los valores allí anulan cualquier cosa que un ingeniero establezca en ~/.claude o en el directorio .claude/ del proyecto. Copia el archivo en su lugar desde tu Dockerfile:
Dockerfile
containerEnv en tu devcontainer.json. El siguiente ejemplo rechaza la telemetría y el informe de errores e impide que Claude Code se actualice automáticamente después de la instalación:
devcontainer.json
npm install -g @anthropic-ai/claude-code@X.Y.Z en lugar de usar la característica, y establece DISABLE_AUTOUPDATER como se muestra arriba.
Para la lista completa de controles de política incluyendo reglas de permiso, restricciones de herramientas y listas blancas de servidores MCP, consulta Configurar Claude Code para tu organización.
Para hacer que servidores MCP estén disponibles dentro del contenedor, defínelos en alcance de proyecto en un archivo .mcp.json en la raíz del repositorio para que se verifiquen junto con tu configuración de contenedor de desarrollo. Instala cualquier binario del que dependan los servidores stdio locales en tu Dockerfile, y agrega dominios de servidor remoto a tu lista blanca de red.
Restringir salida de red
Puedes limitar el tráfico saliente del contenedor solo a los dominios que Claude Code necesita. Consulta Requisitos de acceso de red para los dominios de inferencia y autenticación, y Servicios de telemetría para las conexiones opcionales de telemetría e informe de errores y cómo deshabilitarlas. El contenedor de referencia incluye un scriptinit-firewall.sh que bloquea todo el tráfico saliente excepto los dominios que Claude Code y tus herramientas de desarrollo necesitan. Ejecutar un firewall dentro de un contenedor requiere permisos adicionales, por lo que la referencia agrega las capacidades NET_ADMIN y NET_RAW a través de runArgs. El script de firewall y estas capacidades no son requeridas para Claude Code en sí: puedes dejarlas fuera y confiar en tus propios controles de red en su lugar.
Ejecutar sin solicitudes de permiso
Debido a que el contenedor ejecuta Claude Code como un usuario no root y confina la ejecución de comandos al contenedor, puedes pasar--dangerously-skip-permissions para operación desatendida. La CLI rechaza esta bandera cuando se lanza como root, así que confirma que remoteUser está establecido en una cuenta no root.
Omitir solicitudes de permiso elimina tu oportunidad de revisar llamadas de herramientas antes de que se ejecuten. Claude aún puede modificar cualquier archivo en el espacio de trabajo montado en bind, que aparece directamente en tu host, y alcanzar cualquier cosa que la política de red del contenedor permita. Empareja esta bandera con las restricciones de salida de red anteriores para limitar lo que una sesión omitida puede alcanzar.
Si deseas menos solicitudes sin deshabilitar las comprobaciones de seguridad, considera modo automático en su lugar, que tiene un clasificador que revisa las acciones antes de que se ejecuten. Para prevenir que los ingenieros usen --dangerously-skip-permissions en absoluto, establece permissions.disableBypassPermissionsMode en "disable" en configuración administrada.
Prueba el contenedor de referencia
El repositorioanthropics/claude-code incluye un contenedor de desarrollo de ejemplo que combina la CLI, el firewall de salida, volúmenes persistentes y un shell basado en Zsh. Se proporciona como un ejemplo funcional en lugar de una imagen base mantenida; úsalo para ver cómo encajan las piezas antes de aplicarlas a tu propia configuración.
Instalar requisitos previos
Instala VS Code y la extensión Dev Containers.
Clonar la referencia
Clona el repositorio de Claude Code y ábrelo en VS Code.
Reabrir en contenedor
Cuando se te solicite, haz clic en Reopen in Container, o ejecuta Dev Containers: Reopen in Container desde la Paleta de Comandos.
.devcontainer/ en tu repositorio y ajusta el Dockerfile para tu cadena de herramientas, o vuelve a Agregar Claude Code a tu contenedor de desarrollo para agregar solo la característica a una configuración que ya tienes.
La configuración de referencia consta de tres archivos. Ninguno de ellos es requerido cuando agregas Claude Code a tu propio contenedor de desarrollo a través de la característica, pero muestran una forma de combinar las piezas.
| Archivo | Propósito |
|---|---|
devcontainer.json | Montajes de volumen, capacidades runArgs, extensiones de VS Code y containerEnv |
Dockerfile | Imagen base, herramientas de desarrollo e instalación de Claude Code |
init-firewall.sh | Bloquea todo el tráfico de red saliente excepto los dominios permitidos |
Próximos pasos
Una vez que Claude Code se ejecuta en tu contenedor de desarrollo, las páginas a continuación cubren el resto de un despliegue organizacional: elegir una ruta de autenticación, entregar política administrada fuera del repositorio, monitorear el uso y entender qué almacena y envía Claude Code.- Configurar Claude Code para tu organización: elige un proveedor de autenticación, decide cómo la política llega a los dispositivos y planifica el despliegue
- Configuración administrada por servidor: entrega política administrada desde la consola de administrador de Claude.ai para que los ingenieros no puedan eludirla editando archivos del repositorio
- Monitorear el uso y auditar la actividad: exporta métricas de OpenTelemetry y revisa lo que tu equipo está ejecutando
- Requisitos de acceso de red: la lista completa de dominios para proxies y firewalls
- Servicios de telemetría y opción de exclusión: qué envía Claude Code de forma predeterminada y las variables de entorno que lo deshabilitan
- Explorar el directorio
.claude: qué contiene el montaje de volumen, incluyendo credenciales, configuración e historial de sesión - Modelo de seguridad: cómo encajan el sistema de permisos de Claude Code, el sandboxing y las protecciones contra inyección de solicitudes
- Modos de permiso: el rango completo desde modo de plan hasta modo automático hasta omisión, y cuándo usar cada uno