Mi asistente de código con IA vive en un contenedor Docker: te cuento por qué

Jul 18, 2026 ai coding agents docker claude code developer productivity containerization yolo mode workflow optimization ai tools

Por qué ejecuto mi asistente de código AI en un contenedor Docker (y por qué tú también deberías)

Seamos honestos sobre los agentes de código AI. O has deshabilitado todas las medidas de seguridad y dejaste que tu agente haga lo que quiera en tu máquina, o estás ahí presionando "Aprobar" cada treinta segundos como si estuvieras desarmando una bomba. Ambos enfoques apestan, cada uno a su manera.

Yo era el tipo que aprobaba todo. Y sinceramente? Eso me hacía sentir responsable. Pero destruía mi productividad. Cada vez que Claude Code quería ejecutar un comando, instalar un paquete o modificar un archivo, me sacaban de mi estado de flujo para cuidar el proceso.

Después vi amigos ir en la dirección opuesta: modo YOLO total, sin restricciones, puro instinto y oración. Y honestamente, eso me daba más miedo. Estos agentes son poderosos, pero también son lo suficientemente autónomos para causar daño real si algo sale mal.

El punto medio que lo cambió todo para mí: contenedorizar el agente de código.

La idea básica

En lugar de ejecutar tu asistente AI directamente en tu máquina host, lo levantas dentro de un contenedor Docker con el directorio de trabajo montado. El agente hace lo suyo dentro del contenedor, donde sus capacidades destructivas están contenidas. ¿Decide borrar todo? Perfecto, está borrando el sistema de archivos del contenedor, no tu máquina real.

Esto significa que puedes usar características de modo YOLO como --dangerously-skip-permissions sin el terror existencial de ver desaparecer tu directorio personal.

Te muestro cómo funciona esto.

Configurando Claude Code en Docker

La configuración más simple empieza con un Dockerfile. Esto es lo que necesitas:

FROM node:20-bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://claude.ai/install.sh | bash

ENV PATH="/root/.local/bin:${PATH}"

WORKDIR /workspace

ENTRYPOINT ["claude", "--dangerously-skip-permissions"]

Compílalo una vez:

docker build -t claude-code .

Luego ejecútalo con tu directorio actual montado:

docker run -it -v "$PWD:/workspace" claude-code

Así de simple, tienes Claude Code funcionando con acceso a tus archivos de proyecto. El contenedor puede leer, escribir y ejecutar libremente dentro del workspace, pero está aislado de tu sistema real.

El problema de autenticación

Aquí es donde las cosas se ponen interesantes. En Mac, Claude Code guarda las credenciales en Keychain. Los contenedores Linux no hablan Keychain. Así que necesitas manejar la autenticación de otra forma.

La solución es pasar un token de API como variable de entorno. Primero, obtén tu token de configuración:

claude setup-token

Luego crea un pequeño script de entrada que lea este token y configure el archivo de credenciales del contenedor:

#!/bin/bash
echo "${ANTHROPIC_TOKEN}" > /root/.claude/credentials.json
exec claude --dangerously-skip-permissions

Ahora cuando ejecutes el contenedor, solo pasas el token:

docker run -it -v "$PWD:/workspace" -e ANTHROPIC_TOKEN="$(claude setup-token)" claude-code

Haciéndolo realmente conveniente

Seamos realistas: no quieres escribir todo eso cada vez. Crea un alias o una función de shell:

cc() {
    docker run -it \
        -v "$PWD:/workspace" \
        -v "$HOME/.claude:/root/.claude" \
        -v "$HOME/.claude/skills:/root/.claude/skills" \
        -v "$HOME/.claude/settings.json:/root/.claude/settings.json:ro" \
        -e ANTHROPIC_TOKEN="$(claude setup-token 2>/dev/null)" \
        --env-file ~/.claude/env \
        claude-code "$@"
}

Esta configuración:

  • Monta tu directorio actual como /workspace
  • Pasa tu configuración de Claude y skills
  • Carga variables de entorno (útil para API keys que el agente pueda necesitar)
  • Te permite llamar cc desde cualquier lugar y tener inmediatamente un agente de código funcionando

Lo que esto NO te protege

Quiero ser muy claro sobre el modelo de amenaza aquí. La contenedorización protege tu máquina host de las acciones del agente. NO te protege de:

  • Ataques de inyección de prompts: Si un atacante puede influir en lo que el agente ve, podría engañarlo para exfiltrar tu código o secretos
  • Exposición de API keys: El agente todavía tiene acceso a cualquier clave que pueda leer en el workspace o entorno
  • Ataques basados en red: El contenedor todavía tiene acceso a la red
  • Problemas en la cadena de suministro: Paquetes maliciosos que el agente instale en el contenedor siguen siendo maliciosos

Lo que ganas es protección contra "ups, el agente borró mi directorio home" o "ejecutó rm -rf / y ahora estoy listo". Para mí, eso ha valido la pena la configuración extra muchas veces.

¿Es overkill?

Sinceramente? Depende de lo que estés haciendo. Para scripts rápidos y tareas únicas, todavía uso Claude Code directamente con los prompts de permiso normales. Pero para desarrollo serio de features, trabajo de refactoring, o cuando estoy trabajando en un repo que me importa? La configuración de contenedor me ha ahorrado horas de clicks de aprobación y me ha dado tranquilidad genuina.

Lo mejor es que una vez que entiendes el concepto, puedes adaptarlo. Diferentes agentes de código tendrán diferentes detalles: ubicaciones de almacenamiento de credenciales, formatos de configuración, requisitos de entrada, pero el principio subyacente se mantiene igual: aísla el agente, dale acceso controlado a tu trabajo, y déjalo correr sin que estés respirando sobre su hombro.

Cerrando

Estamos en un período interesante de transición con las herramientas de código AI. Las configuraciones de seguridad por defecto son conservadoras por buenas razones: estos agentes son poderosos y autónomos. Pero los defaults conservadores a menudo significan "diseñado para personas que están probando la herramienta" en lugar de "diseñado para uso profesional diario".

La contenedorización es una forma de tender ese puente. No es seguridad perfecta, pero es protección práctica que te permite capturar las ganancias de productividad que estas herramientas ofrecen sin jugar al whack-a-mole de permisos.

Pruébalo. Una vez que tengas el alias configurado y estés llamando cc desde tu terminal para tener un agente de código completamente cargado en segundos, no volverás atrás.


¿Cuál es tu setup para ejecutar agentes de código AI? ¿Todavía approveando? ¿Modo YOLO total? ¿Tienes un truco de contenedorización que me perdí? Me encantaría saber cómo otros están pensando este balance.

Read in other languages:

HU IT FR DE DA ZH-HANS EN