Claude CodeをDevContainerで動かして権限確認を減らす方法
公開 2026-04-25 更新 2026-09-11

関連テーマ:権限と実行範囲を確認する
Dev Containerは、プロジェクトと開発ツールをコンテナにまとめ、ホスト環境から分離しやすくする方法です。Claude Codeの公式案内はDevelopment containersです。コンテナを使えば確認が不要になるのではなく、許可対象を隔離したうえで承認ルールを設計しやすくなります。
先にコンテナを作る
ホストとコンテナの間で、何を共有するかを決めます。
- ホスト側元ファイル、認証、Docker。渡すマウントを限定する。
- コンテナ側開発ツールと作業場所。書き込み・通信先を確認する。
広いマウントやホストのDockerソケットは境界を弱めます。コンテナ内の変更がホストへ反映される範囲も点検します。
プロジェクトに.devcontainer/devcontainer.jsonを作成します。Claude Codeの公式Dev Container Featureを使う最小構成は、Dockerfileを別に用意せず次の1ファイルで動かせます。
{
"name": "project-dev",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"features": {
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
}
}
VS CodeとDev Containers拡張、Dockerを準備し、コマンドパレットの「Dev Containers: Rebuild Container」を実行します。再構築後、コンテナ内のターミナルでclaudeを起動して認証します。Node.jsのインストールで失敗するベースイメージでは、公式例どおりghcr.io/devcontainers/features/node:1を同じfeaturesへ追加します。プロジェクト固有のランタイムやツールが必要なら、公式リポジトリのreference containerを出発点に、.devcontainer/devcontainer.json、Dockerfile、必要ならinit-firewall.shを自分の構成へコピーして調整します。Windows側のC:\とコンテナの/workspaces/...は別のパスです。
認証をイメージへ焼き込まず、ホストの~/.sshやクラウド資格情報ファイルをマウントしません。再構築後も設定を残す必要がある場合だけ、公式例の名前付きボリュームを~/.claudeへマウントし、CLAUDE_CONFIG_DIRを同じ場所に設定します。共有環境ではトークンの範囲と有効期限も決めます。
権限を設計する
コンテナ内で書き込み可能なディレクトリ、ネットワークの要否、ホストとのマウント、Gitの認証範囲を決めます。AutoやAccept Editsは承認フロー、サンドボックスはBashの制限なので、permission modesとSandboxingを併読します。特権コンテナ、ホストDockerソケット、広いbind mountは隔離を弱めます。
作業後の確認
変更前のGit状態を保存し、読み取り依頼、限定した編集、テストの順で進めます。終了後に差分、テストログ、コンテナが作ったファイル、ホストへ出た成果物を確認します。イメージやコンテナを安全と断定せず、プロジェクトの脅威モデルに合わせて再評価します。権限確認を減らす設定と内蔵サンドボックスも参照してください。
このテーマを続けて読む
モードを比較し、計画と実装、WindowsとWSL2の違いを整理します。
権限と実行範囲を確認するの記事をまとめて見る