BOOTBLOCK ROM 40.1 · — · zero reklam · RSS · o serwisie
DF0: / DEV / claude-code-w-dockerze-bezpiecznie-poradnik
DEV · 20.10.2026

Claude Code w Dockerze: co zamontować, a co zostawić na hoście

Kontener wokół Claude Code chroni tylko przed tym, czego mu się nie zamontuje. Zamontowane gniazdo Dockera albo katalog ~/.ssh dają agentowi to samo, co miałby na gołym hoście.

autor: Maxczytanie: 4 minpublikacja: 20.10.2026
df0:claude-code-w-dockgrafika 300×170
Claude Code w Dockerze: co zamontować, a co zostawić na hoście

Agent do kodowania z wyłączonymi pytaniami o zgodę jest wygodny i szybki, ale robi wszystko, co mu się każe, także wtedy, gdy każe mu złośliwy plik w cudzym repozytorium. Dlatego tryb --dangerously-skip-permissions odpala się w kontenerze albo w maszynie wirtualnej. Sam kontener niczego jednak nie gwarantuje. Liczy się to, co do niego wpadnie przez montowania i zmienne środowiskowe.

Jak uruchomić Claude Code w devcontainerze

Najkrótsza droga to gotowa funkcja devcontainera od Anthropic. W pliku .devcontainer/devcontainer.json wystarczy obraz bazowy, na przykład mcr.microsoft.com/devcontainers/base:ubuntu, i w sekcji features wpis ghcr.io/anthropics/devcontainer-features/claude-code:1.0 z pustym obiektem konfiguracji. VS Code, Cursor i inne edytory obsługujące devcontainery zbudują środowisko same, a Claude Code będzie w nim od pierwszego uruchomienia.

Dokumentacja dokłada do tego trzy rzeczy, które warto zrobić od razu. Logowanie znika przy każdym przebudowaniu kontenera, więc katalog ~/.claude trzyma się na wolumenie i wskazuje zmienną CLAUDE_CONFIG_DIR. Wersję przypina się w obrazie poleceniem npm install -g @anthropic-ai/claude-code@X.Y.Z i wyłącza automatyczne aktualizacje zmienną DISABLE_AUTOUPDATER. Zasady dla całego zespołu trafiają do /etc/claude-code/managed-settings.json. Tu jest haczyk: plik pochodzi z konfiguracji devcontainera w repozytorium, więc obejdzie go każdy, kto ma do repo prawo zapisu.

Czego nie montować do kontenera z agentem

Ostrzeżenie Anthropic jest jednoznaczne. Przy wyłączonych pytaniach o zgodę złośliwy projekt może wyprowadzić z kontenera wszystko, co w nim jest, łącznie z danymi logowania Claude Code w ~/.claude. Stąd zasady, które powinny wejść w nawyk:

Kontener, Docker-in-Docker czy sandbox?

Kłopot zaczyna się, gdy agent ma sam budować obrazy i odpalać kontenery, bo testy bez tego nie wstaną. Dokumentacja Dockera zestawia opcje tak:

SposóbIzolacjaDemon DockeraDo czego
Docker Sandboxespełna (hipernadzorca)własny, odizolowanyautonomiczne agenty
Kontener z gniazdemczęściowa (przestrzenie nazw)wspólny z hostemzaufane narzędzia
Docker-in-Dockerczęściowa (kontener uprzywilejowany)zagnieżdżonyCI/CD
Prosto na hościebrakhostaręczna praca

Claude Code w Docker Sandboxes (sbx)

$ sbx run --name my-sandbox claude
$ sbx policy allow network registry.npmjs.org
$ sbx secret set github --command 'gh auth token'

Pierwsze polecenie startuje Claude Code w microVM i montuje bieżący katalog do odczytu i zapisu. Z flagą --clone repozytorium wchodzi tylko do odczytu, a agent pracuje na własnym klonie. Drugie dopuszcza ruch do rejestru npm, trzecie podaje token GitHuba prosto z gh. Token nie trafia do maszyny wirtualnej, bo dane logowania dokleja proxy na hoście. To samo dotyczy logowania przez /login: token OAuth zostaje na hoście. Po wycieku kluczy z OpenCode to akurat najmocniejszy argument za sandboksem. Jeśli w zespole pracuje kilka agentów naraz, warto pamiętać, że w agent teams tryb bez pytań o zgodę przechodzi z lidera na wszystkich teammates.

EOF / 4 MIN READBOOTBLOCK:/dev/claude-code-w-dockerze-b
<< Code Review od Anthropic wychodzi z bety…Docker przenosi sandboxy dla agentów AI … >>

Komentarze

Czytają wszyscy. Żeby dodać komentarz, zaloguj się — GitHub, Google albo e-mail.