開發容器(或 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 安裝到任何開發容器中。 這些設定適用於任何支援 Dev Containers 規範的工具,例如 VS Code、GitHub Codespaces 或 JetBrains IDE。下面的步驟以 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 祕密或您的雲端的工作負載身份(而不是從主機掛載認證檔案)將認證傳遞到容器中。請參閱 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 以了解 Claude Code 讀取的認證鏈。
請參閱選擇您的 API 提供者以決定哪條路徑適合您的組織。
如果瀏覽器登入完成但回調從未到達容器,請複製瀏覽器中顯示的代碼,並將其貼上到終端中的
Paste code here if prompted 提示處。當編輯器的連接埠轉發不會路由 localhost 回調時,可能會發生這種情況。在重新構建時保持身份驗證和設定
預設情況下,容器的主目錄在重新構建時會被丟棄,因此工程師必須每次都重新登入。Claude Code 將其身份驗證令牌、使用者設定和工作階段歷史記錄儲存在~/.claude 下。在該路徑掛載一個命名磁碟區以在重新構建時保持此狀態。
以下示例在 node 使用者的主目錄掛載一個磁碟區:
devcontainer.json
/home/node 替換為您的容器的 remoteUser 的主目錄。如果您在 ~/.claude 以外的位置掛載磁碟區,請設定 CLAUDE_CONFIG_DIR 為掛載路徑,以便 Claude Code 在那裡讀取和寫入。
若要隔離每個專案的狀態,而不是在所有儲存庫中共享一個磁碟區,請在來源名稱中包含 ${devcontainerId} 變數。參考配置為此目的使用 source=claude-code-config-${devcontainerId}。
在 GitHub Codespaces 中,~/.claude 在停止和啟動 codespace 時會保持,但在重新構建容器時仍會被清除,因此上面的磁碟區掛載也適用於此。若要在 codespace 之間進行身份驗證,請將 ANTHROPIC_API_KEY 或來自 claude setup-token 的 CLAUDE_CODE_OAUTH_TOKEN 儲存為 Codespaces 祕密;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 檔案中以專案範圍定義它們,以便它們與您的開發容器配置一起簽入。在您的 Dockerfile 中安裝本地 stdio 伺服器所依賴的任何二進位檔案,並將遠端伺服器網域新增到您的網路允許清單。
限制網路出站流量
您可以將容器的出站流量限制為僅 Claude Code 需要的網域。請參閱網路存取要求以了解推理和身份驗證網域,以及遙測服務以了解可選的遙測和錯誤報告連接以及如何停用它們。 參考容器包含一個init-firewall.sh 指令碼,該指令碼會阻止除 Claude Code 和您的開發工具需要的網域之外的所有出站流量。在容器內執行防火牆需要額外的權限,因此參考透過 runArgs 新增 NET_ADMIN 和 NET_RAW 功能。防火牆指令碼和這些功能對 Claude Code 本身不是必需的:您可以將它們省略並改為依賴您自己的網路控制。
無需權限提示即可執行
因為容器以非 root 使用者身份執行 Claude Code 並將命令執行限制在容器內,您可以傳遞--dangerously-skip-permissions 以進行無人值守操作。當以 root 身份啟動時,CLI 會拒絕此標誌,因此請確認 remoteUser 設定為非 root 帳戶。
跳過權限提示會移除您在工具呼叫執行前進行審查的機會。Claude 仍然可以修改綁定掛載工作區中的任何檔案(該檔案直接出現在您的主機上),並到達容器的網路政策允許的任何內容。將此標誌與上面的網路出站流量限制配對,以限制繞過的工作階段可以到達的內容。
如果您想要更少的提示而不停用安全檢查,請考慮改為自動模式,該模式具有在執行前審查操作的分類器。若要完全防止工程師使用 --dangerously-skip-permissions,請在託管設定中將 permissions.disableBypassPermissionsMode 設定為 "disable"。
試用參考容器
anthropics/claude-code 儲存庫包含一個示例開發容器,該容器結合了 CLI、出站防火牆、持久磁碟區和基於 Zsh 的 shell。它作為工作示例而不是維護的基礎映像提供;在將它們應用到您自己的配置之前,使用它來查看這些部分如何組合在一起。
安裝先決條件
安裝 VS Code 和 Dev Containers 擴充功能。
複製參考
複製 Claude Code 儲存庫並在 VS Code 中開啟它。
.devcontainer/ 目錄複製到您的儲存庫中並根據您的工具鏈調整 Dockerfile,或返回在開發容器中新增 Claude Code 以僅將功能新增到您已有的設定中。
參考配置由三個檔案組成。當您透過功能將 Claude Code 新增到您自己的開發容器時,這些都不是必需的,但它們展示了一種組合這些部分的方式。
| 檔案 | 目的 |
|---|---|
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 的權限系統、沙箱和提示注入保護如何組合在一起
- 權限模式:從計劃模式到自動模式到繞過的完整範圍,以及何時使用每種模式