開発コンテナ(dev container)を使用すると、チームのすべてのエンジニアが実行できる同一の分離環境を定義できます。Claude Code がそのコンテナにインストールされている場合、Claude が実行するコマンドはホストマシンではなくコンテナ内で実行され、プロジェクトファイルへの編集はローカルリポジトリに表示されます。 このページでは、開発コンテナに Claude Code をインストールする方法と、その後の設定トピックについて説明します。各トピックは独立しているため、必要な設定に合わせてジャンプしてください:Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
開発コンテナがエディタとどのように連携するか
開発コンテナがエディタとどのように連携するか
claude を実行できます。どちらもコンテナ内で実行され、同じ ~/.claude 設定を共有します。開発コンテナに Claude Code を追加する
Claude Code は、Claude Code Dev Container Feature を通じて任意の開発コンテナにインストールされます。 設定は、VS Code、GitHub Codespaces、JetBrains IDE など、Dev Containers 仕様をサポートするあらゆるツールで機能します。以下の手順では、例として VS Code を使用しています。 VS Code または Codespaces でコンテナを開くと、機能は Claude Code VS Code 拡張機能も追加します。他のエディタはその部分を無視します。devcontainer.json を作成または更新する
以下をリポジトリの
.devcontainer/devcontainer.json として保存するか、既存ファイルに features ブロックを追加します。末尾のバージョンタグ(:1.0 など)は、Claude Code リリースではなく、機能のインストールスクリプトをピン留めします。機能は最新の Claude Code をインストールし、Claude Code はデフォルトでコンテナ内で自動更新されます。CLI バージョンをピン留めするか、自動更新を無効にするには、組織ポリシーを適用するを参照してください。.devcontainer/devcontainer.json
image 行をプロジェクトのベースイメージに置き換えるか、既存ファイルが Dockerfile を使用している場合は削除します。コンテナを再構築する
Mac では
Cmd+Shift+P、Windows と Linux では Ctrl+Shift+P で VS Code コマンドパレットを開き、Dev Containers: Rebuild Container を実行します。他のツールについては、そのツールの再構築アクション(GitHub Codespaces での再構築、Dev Containers CLI、または IDE の開発コンテナドキュメント)に従ってください。- Anthropic:Claude または Anthropic Console アカウントでブラウザ経由でサインイン
- Amazon Bedrock、Google Vertex AI、または Microsoft Foundry:Claude Code はクラウドプロバイダーの認証情報を使用し、ブラウザプロンプトはありません
containerEnv、Codespaces シークレット、またはクラウドのワークロード ID を通じて認証情報をコンテナに渡します。Claude Code が読み取る認証情報チェーンについては、Amazon Bedrock、Google Vertex AI、または Microsoft Foundry を参照してください。
どのパスが組織に適しているかを決定するには、API プロバイダーを選択するを参照してください。
ブラウザサインインが完了しても、コールバックがコンテナに到達しない場合は、ブラウザに表示されているコードをコピーして、ターミナルの
Paste code here if prompted プロンプトに貼り付けます。これは、エディタのポート転送が localhost コールバックをルーティングしない場合に発生する可能性があります。再構築時に認証と設定を保持する
デフォルトでは、コンテナのホームディレクトリは再構築時に破棄されるため、エンジニアは毎回サインインし直す必要があります。Claude Code は認証トークン、ユーザー設定、セッション履歴を~/.claude に保存します。そのパスに名前付きボリュームをマウントして、再構築時にこの状態を保持します。
以下の例は、node ユーザーのホームディレクトリにボリュームをマウントします:
devcontainer.json
/home/node をコンテナの remoteUser のホームディレクトリに置き換えます。ボリュームを ~/.claude 以外の場所にマウントする場合は、CLAUDE_CONFIG_DIR をマウントパスに設定して、Claude Code がそこで読み書きするようにします。
プロジェクトごとに状態を分離して、すべてのリポジトリ間で 1 つのボリュームを共有しないようにするには、ソース名に ${devcontainerId} 変数を含めます。リファレンス設定はこの目的で source=claude-code-config-${devcontainerId} を使用しています。
GitHub Codespaces では、~/.claude は codespace の停止と開始の間で保持されますが、コンテナを再構築するときはまだクリアされるため、上記のボリュームマウントがそこにも適用されます。codespace 間で認証を実行するには、Codespaces シークレットとして ANTHROPIC_API_KEY または claude setup-token からの CLAUDE_CODE_OAUTH_TOKEN を保存します。Codespaces はシークレットを自動的にコンテナ内の環境変数として利用可能にします。
組織ポリシーを適用する
開発コンテナは、同じイメージと設定がすべてのエンジニアのマシンで実行されるため、組織ポリシーを適用するのに便利な場所です。 Claude Code は Linux で/etc/claude-code/managed-settings.json を読み取り、設定階層で最高の優先度で適用するため、そこの値はエンジニアが ~/.claude またはプロジェクトの .claude/ ディレクトリで設定したものをオーバーライドします。Dockerfile からファイルをコピーして配置します:
Dockerfile
devcontainer.json の containerEnv に追加します。以下の例は、テレメトリとエラーレポートをオプトアウトし、Claude Code がインストール後に自動更新されるのを防ぎます:
devcontainer.json
npm install -g @anthropic-ai/claude-code@X.Y.Z でインストールし、上記のように DISABLE_AUTOUPDATER を設定します。
権限ルール、ツール制限、MCP サーバーアローリストを含むポリシーコントロールの完全なリストについては、組織向けに Claude Code をセットアップするを参照してください。
MCP サーバーをコンテナ内で利用可能にするには、リポジトリルートの .mcp.json ファイルでプロジェクトスコープで定義して、開発コンテナ設定と一緒にチェックインします。ローカル stdio サーバーが依存するバイナリを Dockerfile にインストールし、リモートサーバードメインをネットワークアローリストに追加します。
ネットワークエグレスを制限する
コンテナのアウトバウンドトラフィックを Claude Code が必要とするドメインのみに制限できます。推論と認証ドメインについてはネットワークアクセス要件を参照し、オプションのテレメトリとエラーレポート接続およびそれらを無効にする方法についてはテレメトリサービスを参照してください。 リファレンスコンテナには、Claude Code と開発ツールが必要とするドメイン以外のすべてのアウトバウンドトラフィックをブロックするinit-firewall.sh スクリプトが含まれています。コンテナ内でファイアウォールを実行するには追加の権限が必要なため、リファレンスは runArgs を通じて NET_ADMIN と NET_RAW 機能を追加します。ファイアウォールスクリプトとこれらの機能は Claude Code 自体には必須ではありません。これらを除外して、代わりに独自のネットワークコントロールに依存することができます。
権限プロンプトなしで実行する
コンテナは Claude Code を非ルートユーザーとして実行し、コマンド実行をコンテナに限定するため、無人操作のために--dangerously-skip-permissions を渡すことができます。CLI はルートとして起動された場合、このフラグを拒否するため、remoteUser が非ルートアカウントに設定されていることを確認します。
権限プロンプトをスキップすると、実行前にツール呼び出しを確認する機会が失われます。Claude はバインドマウントされたワークスペース内のあらゆるファイルを変更でき、これはホストに直接表示され、コンテナのネットワークポリシーが許可するものに到達できます。このフラグを上記のネットワークエグレス制限と組み合わせて、バイパスされたセッションが到達できるものを制限します。
安全チェックを無効にせずにプロンプトを減らしたい場合は、代わりに自動モードを検討してください。これは、実行前にアクションを確認するための分類器を備えています。エンジニアが --dangerously-skip-permissions をまったく使用できないようにするには、管理設定で permissions.disableBypassPermissionsMode を "disable" に設定します。
リファレンスコンテナを試す
anthropics/claude-code リポジトリには、CLI、エグレスファイアウォール、永続ボリューム、Zsh ベースのシェルを組み合わせた開発コンテナの例が含まれています。これは、保守されたベースイメージではなく、動作する例として提供されています。独自の設定に適用する前に、ピースがどのように組み合わさるかを確認するために使用してください。
前提条件をインストールする
VS Code と Dev Containers 拡張機能をインストールします。
リファレンスをクローンする
Claude Code リポジトリをクローンして、VS Code で開きます。
コンテナで再度開く
プロンプトが表示されたら、Reopen in Container をクリックするか、コマンドパレットから Dev Containers: Reopen in Container を実行します。
.devcontainer/ ディレクトリをリポジトリにコピーして、ツールチェーン用に Dockerfile を調整するか、開発コンテナに Claude Code を追加するに戻って、既に持っている設定に機能のみを追加します。
リファレンス設定は 3 つのファイルで構成されています。機能を通じて独自の開発コンテナに Claude Code を追加する場合、これらは必須ではありませんが、ピースを組み合わせる 1 つの方法を示しています。
| ファイル | 目的 |
|---|---|
devcontainer.json | ボリュームマウント、runArgs 機能、VS Code 拡張機能、containerEnv |
Dockerfile | ベースイメージ、開発ツール、Claude Code インストール |
init-firewall.sh | 許可されたドメイン以外のすべてのアウトバウンドネットワークトラフィックをブロック |
次のステップ
Claude Code が開発コンテナで実行されたら、以下のページは組織ロールアウトの残りの部分をカバーしています。認証パスの選択、リポジトリ外での管理ポリシーの配信、使用状況の監視、Claude Code が保存および送信するものの理解です。- 組織向けに Claude Code をセットアップする:認証プロバイダーを選択し、ポリシーがデバイスに到達する方法を決定し、ロールアウトを計画します
- サーバー管理設定:Claude.ai 管理コンソールから管理ポリシーを配信して、エンジニアがリポジトリファイルを編集してバイパスできないようにします
- 使用状況の監視と監査アクティビティ:OpenTelemetry メトリクスをエクスポートして、チームが実行しているものを確認します
- ネットワークアクセス要件:プロキシとファイアウォール用の完全なドメインアローリスト
- テレメトリサービスとオプトアウト:Claude Code がデフォルトで送信するもの、およびそれを無効にする環境変数
.claudeディレクトリを探索する:ボリュームマウントが保持するもの(認証情報、設定、セッション履歴を含む)- セキュリティモデル:Claude Code の権限システム、サンドボックス、プロンプトインジェクション保護がどのように組み合わさるか
- 権限モード:プランモードから自動モードからバイパスまでの完全な範囲、および各モードを使用する場合