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.
| Risiko | Normales Terminal | Docker-Container |
|---|---|---|
| Liest Dateien außerhalb des Projekts | Ja | Nur, was du einhängst |
| Liest SSH-Schlüssel und Zugangsdaten | Ja | Nein, außer sie sind eingehängt |
| Löscht Dateien außerhalb des Projekts | Möglich | Nicht erreichbar |
| Installiert globale Tools auf deinem Rechner | Möglich | Nur im Container, beim Beenden weg |
| Ändert oder löscht Dateien im Projekt | Möglich | Weiterhin möglich |
| Erreicht das Internet | Ja | Ja, 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:
--rmentfernt den Container, wenn Claude Code beendet wird.--userläuft mit deiner eigenen User-ID, sodass neue Dateien im Projekt nicht root gehören.-v "$PWD":/workhängt das Projekt ein und sonst nichts von deiner Platte.- Ein Wegwerf-
HOMEauf 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
- Starte Docker Desktop, Colima oder OrbStack.
- Öffne ein Projekt in AgentVera und füge einen Claude-Code- oder Codex-Agenten hinzu.
- 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.
- 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
| Anliegen | Was AgentVera tut |
|---|---|
| Projektdateien | Hängt den Projektordner ein (bei einem Worktree auch dessen Repository) |
| Anmeldung, Resume, Statistiken | Hängt den Unterhaltungsordner der CLI ein, sodass Resume, Nutzungsstatistiken und Budgets wie gewohnt funktionieren |
| Git-Identität | Hängt ~/.gitconfig schreibgeschützt ein, damit Commits deinen Namen tragen |
| Dateibesitz | Läuft unter macOS und Linux mit deiner User-ID, sodass Dateien nicht root gehören |
| Home-Ordner | Ein frisches Home auf tmpfs, das beim Stoppen des Containers verschwindet |
| Härtung | no-new-privileges, ein Prozesslimit und mehrere entzogene Linux-Capabilities |
| Geheimnisse | Umgebungswerte werden über den Namen übergeben, sodass Tokens nicht in der Prozessliste stehen |
| AgentVera-Tools | Hooks 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:
- Lege den Agenten in einem eigenen Git-Worktree an, damit seine Änderungen auf einem eigenen Branch bleiben.
- Setze das Häkchen bei Run in a Docker container.
- Wähle Auto oder Full access, je nachdem, wie sehr du der Aufgabe vertraust.
- 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.