Claude Code in Docker ausführen: Sandbox einrichten

Claude Code in Docker ausführen, damit der Agent nur deinen Projektordner sieht: ein docker-run-Rezept, seine Grenzen und der Container per Häkchen in AgentVera.

Solviera Teknoloji 6 Min. Lesezeit

Um Claude Code in Docker auszuführen, startest du es in einem Container, der nur deinen Projektordner einhängt: Der Agent kann dort frei arbeiten, während der Rest deiner Platte außer Reichweite bleibt. Das geht von Hand mit einem Image und einer langen docker run-Zeile, oder du setzt in AgentVera ein Häkchen und bekommst denselben Container fertig eingerichtet, samt Anmeldung, Git-Identität und Dateibesitz.

Diese Anleitung behandelt, wovor ein Container dich schützt (und wovor nicht), den Weg zum Selbermachen und wie die Docker-Agenten von AgentVera funktionieren.

Was ein Container schützt und was nicht

Ein Coding-Agent führt Befehle als dein Benutzer aus. Ohne Sandbox kann er jede Datei lesen, die du lesen kannst: andere Repos, ~/.ssh, Cloud-Zugangsdaten, Dotfiles. Meistens ist das in Ordnung. Das Risiko ist der seltene schlechte Befehl, eine verwirrte Aufräumaktion oder eine Prompt-Injection, versteckt auf einer Webseite oder in der README einer Abhängigkeit.

RisikoNormales TerminalDocker-Container
Liest Dateien außerhalb des ProjektsJaNur, was du einhängst
Liest SSH-Schlüssel und ZugangsdatenJaNein, außer sie sind eingehängt
Löscht Dateien außerhalb des ProjektsMöglichNicht erreichbar
Installiert globale Tools auf deinem RechnerMöglichNur im Container, beim Beenden weg
Ändert oder löscht Dateien im ProjektMöglichWeiterhin möglich
Erreicht das InternetJaJa, standardmäßig

Zwei Zeilen sind am wichtigsten. Der Projektordner ist weiterhin beschreibbar, also committe oft oder nutze einen Git-Worktree. Und Docker kappt das Netzwerk nicht von selbst: Wenn du das willst, brauchst du zusätzliche Netzwerkregeln. Einen breiteren Blick auf die Bedrohungen gibt Sicherheit von KI-Coding-Agenten.

Claude Code von Hand in Docker ausführen

Der Weg zum Selbermachen besteht aus drei Teilen: einem Image, einem Run-Befehl und einer Entscheidung zur Anmeldung.

1. Ein Image mit der CLI bauen

Ein kleines Dockerfile genügt:

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
docker build -t my-claude .

Füge hinzu, was dein Projekt zum Bauen und Testen braucht, etwa einen Compiler, einen Datenbank-Client oder eine Sprach-Runtime.

2. Mit nur dem eingehängten Projekt starten

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

Was die einzelnen Teile tun:

  1. --rm entfernt den Container, wenn Claude Code beendet wird.
  2. --user läuft mit deiner eigenen User-ID, sodass neue Dateien im Projekt nicht root gehören.
  3. -v "$PWD":/work hängt das Projekt ein und sonst nichts von deiner Platte.
  4. Ein Wegwerf-HOME auf tmpfs gibt der CLI einen Ort, an den sie ihre Einstellungen schreiben kann.

3. Mit Anmeldung und Verlauf umgehen

Mit einem Wegwerf-Home vergisst Claude Code bei jedem Lauf deine Anmeldung und deine Unterhaltungen. Du kannst stattdessen einen eigenen Konfigurationsordner einhängen oder mit -e ANTHROPIC_API_KEY einen API-Key übergeben. Gib Geheimnisse über den Namen weiter (-e NAME) statt mit -e NAME=value, damit der Wert nicht in deiner Shell-History auftaucht.

Anthropic veröffentlicht außerdem ein Referenz-Devcontainer-Setup für Claude Code mit Firewall; wenn du in Devcontainern arbeitest, lies dazu die Claude-Code-Doku.

Wo der manuelle Weg mühsam wird

Jeder neue Agent bedeutet dieselben Flags noch einmal. Resume, Nutzungsstatistiken und projektspezifische Einstellungen liegen in einem Ordner, den der Container nur sieht, wenn du ihn einhängst. Git-Commits im Container haben keinen Namen, wenn du nicht ~/.gitconfig einhängst. Und wenn du mehrere Agenten gleichzeitig laufen lässt, jonglierst du mit mehreren dieser Befehle.

Claude Code mit AgentVera in Docker ausführen

AgentVera ist eine Desktop-App für macOS, Windows und Linux, die Coding-Agent-CLIs nebeneinander in echten Terminals laufen lässt. Für Claude-Code- und Codex-Agenten hat der Agenten-Dialog ein Häkchen Run in a Docker container. Sein Hinweis sagt es klar: Der Agent sieht nur den Projektordner; andere Dateien, Programme und SSH-Schlüssel auf diesem Rechner bleiben ihm verschlossen.

Schritte

  1. Starte Docker Desktop, Colima oder OrbStack.
  2. Öffne ein Projekt in AgentVera und füge einen Claude-Code- oder Codex-Agenten hinzu.
  3. Setze das Häkchen bei Run in a Docker container. Optional kannst du Image, CPU und Memory (GB) festlegen; lass den Speicher leer für kein Limit.
  4. Starte den Agenten.

Bei der ersten Nutzung baut AgentVera sein Agenten-Image agentvera/agent:1, und du siehst die Build-Ausgabe im Terminal des Agenten. Das Image basiert auf node:22-bookworm-slim mit git, ripgrep, jq, python3, make, g++ und einigen weiteren Tools sowie Claude Code und Codex. Wenn du ein eigenes Image angibst, muss es den Befehl claude oder codex enthalten; ein Image, das nicht auf deinem Rechner liegt, wird heruntergeladen.

Der Agenten-Header zeigt dann einen Docker-Chip, und das Pane meldet, dass der Agent in einem Docker-Container läuft, samt Image-Namen. Du kannst einen bestehenden Agenten auch in einen Container hinein- oder aus ihm herausschalten, indem du ihn bearbeitest; der Agent startet neu und behält dieselbe Unterhaltung.

Was AgentVera für dich einrichtet

AnliegenWas AgentVera tut
ProjektdateienHängt den Projektordner ein (bei einem Worktree auch dessen Repository)
Anmeldung, Resume, StatistikenHängt den Unterhaltungsordner der CLI ein, sodass Resume, Nutzungsstatistiken und Budgets wie gewohnt funktionieren
Git-IdentitätHängt ~/.gitconfig schreibgeschützt ein, damit Commits deinen Namen tragen
DateibesitzLäuft unter macOS und Linux mit deiner User-ID, sodass Dateien nicht root gehören
Home-OrdnerEin frisches Home auf tmpfs, das beim Stoppen des Containers verschwindet
Härtungno-new-privileges, ein Prozesslimit und mehrere entzogene Linux-Capabilities
GeheimnisseUmgebungswerte werden über den Namen übergeben, sodass Tokens nicht in der Prozessliste stehen
AgentVera-ToolsHooks und MCP-Server wie die Projektkarte, das Board und die Agenten-Nachrichten funktionieren weiter

Wenn der Agent stoppt, wird der Container entfernt. Nur die Änderungen im Projektordner bleiben.

Einiges solltest du wissen:

  • Das Netzwerk ist offen. Unter Linux nutzt der Container das Host-Netzwerk; anderswo erreicht er die lokalen Server von AgentVera über host.docker.internal. Der Container begrenzt Dateien, nicht das Internet.
  • macOS-Anmeldung. Claude Code speichert seine Anmeldung im macOS-Schlüsselbund, den ein Container nicht lesen kann, sodass du dich einmal im Container anmelden musst.
  • Claude in Chrome wird in einem Container nicht genutzt. Der AgentVera-Browser, der über Playwright MCP läuft, ist eine separate Option im selben Dialog.
  • Nur lokale Agenten. Remote-Agenten über SSH laufen auf ihrem Server und nehmen diese Option nicht.

Docker-Agenten gehören zum kostenlosen Plan. Die App hat außerdem eine eigene Docker-Manager-Seite für deine eigenen Container und Compose-Projekte; siehe die Docker-Funktionsseite.

Den Container mit der passenden Berechtigungsstufe kombinieren

Ein Container macht eine lockerere Berechtigungsstufe erst vernünftig. AgentVera-Agenten haben drei Stufen: Ask, Auto und Full access. Der Hinweis zu Full access lautet: fragt nie, am besten in einem Worktree oder Container.

Ein praktisches Setup für eine lange Aufgabe:

  1. Lege den Agenten in einem eigenen Git-Worktree an, damit seine Änderungen auf einem eigenen Branch bleiben.
  2. Setze das Häkchen bei Run in a Docker container.
  3. Wähle Auto oder Full access, je nachdem, wie sehr du der Aufgabe vertraust.
  4. Prüfe nach dem Abschluss den Diff, bevor du mergst.

Wenn du --dangerously-skip-permissions abwägst, behandelt Berechtigungen in Claude Code überspringen die Kompromisse, und Claude Code über Nacht laufen lassen zeigt, wie ein Container zu einem Lauf passt, den niemand beobachtet.

Kurze Checkliste

  • Der Container hängt nur das Projekt ein, nicht deinen Home-Ordner.
  • Neue Dateien im Projekt gehören dir, nicht root.
  • Geheimnisse werden über den Namen übergeben und nicht ins Image gebacken.
  • Die Arbeit ist committet, oder der Agent läuft auf einem Worktree-Branch.
  • Du weißt, dass das Netzwerk weiterhin offen ist, und hast Regeln ergänzt, wenn es darauf ankommt.

Lade AgentVera herunter, um Claude Code und Codex in Containern neben deinen übrigen Agenten laufen zu lassen, oder lies mehr auf der Seite Agenten in Docker.

Häufige Fragen

Warum Claude Code überhaupt in Docker ausführen?

Ein Agent auf deinem Rechner kann alles lesen, was dein Benutzer lesen kann: andere Projekte, SSH-Schlüssel, Cloud-Zugangsdaten, Browserdaten. In einem Container sieht er nur die eingehängten Ordner, sodass ein schlechter Befehl oder eine Prompt-Injection weit weniger erreicht.

Trennt ein Docker-Container den Agenten vom Internet?

Nicht standardmäßig. Ein normaler Container hat Netzwerkzugriff. Docker begrenzt Dateien und Prozesse; willst du auch das Netzwerk einschränken, brauchst du eigene Firewall-Regeln oder ein eigenes Netzwerk-Setup. Die Agenten-Container von AgentVera lassen das Netzwerk offen, damit die CLI ihre API erreicht.

Welche Agenten kann AgentVera in einem Container ausführen?

Claude-Code- und Codex-Agenten, die auf deinem eigenen Rechner laufen. Remote-Agenten über SSH laufen auf ihrem Server und nutzen diese Option nicht. Der Container braucht ein laufendes Docker Desktop, Colima oder OrbStack.

Muss ich mich im Container erneut anmelden?

Meist nicht, denn AgentVera hängt den Unterhaltungsordner der CLI in den Container ein. Unter macOS speichert Claude Code seine Anmeldung im Schlüsselbund, den ein Container nicht lesen kann, sodass du dich einmal im Container anmelden musst.

Ist der Full-Access-Modus in einem Container sicher?

Er ist deutlich sicherer als auf dem nackten Rechner, weshalb der Full-access-Hinweis von AgentVera sagt, er passe am besten in einen Worktree oder Container. Der Agent kann Dateien im Projektordner weiterhin ändern oder löschen, also committe deine Arbeit und prüfe den Diff.

Hol deine Agenten an einen Tisch.

Lade AgentVera kostenlos herunter; deine installierten CLIs sind sofort startklar.

Weitere Beiträge