智能工具库

Claude Code 在 Docker 沙箱中的能力边界实测

Claude Code 在 Docker 沙箱中的能力边界实测

实测 Claude Code 在 Docker Sandbox 中的自主操作能力,涵盖隔离机制、两种项目模式、网络控制与权限边界,帮助开发者安全地让 AI 代理独立完成开发任务。

2026-10-06 0来源:freeCodeCamp

为什么要给 Claude Code 一个沙箱?

Claude Code 不只是建议修复方案——它能直接编辑文件、安装依赖、运行测试、启动应用。但当它自主完成任务时,一个实际问题浮现:这些命令应该被允许影响你电脑的哪些部分?

逐条审批命令虽然安全,却让你无法真正放手。去掉审批提示后,Claude 可以持续工作,但你仍然需要一个边界来限制它的访问范围。Docker Sandboxes 正是提供这个边界的方案——它通过轻量级 Linux 虚拟机(microVM)运行 Claude,并严格控制其对你项目和网络的访问。

沙箱隔离了什么?

内核级隔离

普通 Linux 容器共享宿主机的内核,而 Docker Sandbox 拥有独立内核,这意味着沙箱的操作系统与你的 Mac 操作系统完全分离。Claude 在沙箱内部拥有 sudo 权限,可以安装软件或修改系统文件,但这些权限不会延伸到你的 Mac。

文件访问规则

你选择共享给 Claude 的文件夹有独立的访问规则。沙箱内的 Claude 通过 Docker 的 sbx 命令启动,默认使用以下参数:

claude --dangerously-skip-permissions

这个标志禁用了 Claude 普通的工具审批提示,但 Docker 负责提供隔离并控制文件与网络目标的访问。

两种项目模式

Docker Sandboxes 提供了两种让 Claude 访问你项目的方式:

  • Direct 模式:沙箱中的 Claude 可以直接修改你 Mac 上的项目文件夹,改动立即生效。
  • Clone 模式:Claude 在沙箱内操作项目的独立副本,你可以在应用改动前先审查变更。

Clone 模式更适合需要审查的工作流,而 Direct 模式适合你信任 Claude 操作的场景。

实测:Claude 在沙箱中做了什么?

作者在一个 Flask 项目中测试了 Claude 的自主能力。Claude 完成了以下全部任务,且全程未请求审批任何命令:

  1. 为 Flask 应用添加健康检查端点
  2. 编写对应的测试用例
  3. 构建 Docker 镜像
  4. 在容器中通过全部三项测试
  5. 验证应用响应正常

这一系列操作涵盖了从编码到测试到部署验证的完整链路,展示了 Claude Code 在沙箱环境中的实际生产力。

如何在自己的项目中运行 Claude 沙箱

前置条件

  • Apple Silicon Mac,运行 macOS Sonoma 14 或更高版本
  • 已安装 Homebrew 和 Git
  • Docker 账号 + Claude 订阅(含 Claude Code)或 Anthropic API Key
  • 本地项目(使用 Clone 模式需为 Git 仓库且有初始提交)

注意:无需安装 Docker Desktop 或 Docker Engine,只需安装 Docker 的 sbx 命令即可。

配置网络访问

沙箱的网络访问需要显式配置。你需要决定 Claude 可以访问哪些网络目标——这直接影响它能安装哪些依赖、调用哪些 API。建议遵循最小权限原则,只开放任务所需的网络目的地。

审查工作成果

无论使用哪种模式,都建议在应用 Claude 的改动前先进行审查。在 Clone 模式下,你可以直接查看沙箱内的 diff;在 Direct 模式下,建议通过 Git 提交历史来追踪变更。

安全注意事项

  • 不要将无关密钥暴露给 Claude:确保沙箱内无法访问你不想让它看到的敏感文件
  • 沙箱停止不会丢失工作:Docker Sandbox 支持在不丢失工作的情况下停止
  • 网络访问是可控的:你可以精确配置 Claude 能访问的网络范围

总结

Docker Sandboxes 为 Claude Code 提供了一个安全且实用的运行环境。它通过 microVM 实现内核级隔离,让 Claude 在沙箱内拥有足够的自主权来完成实际开发任务,同时确保这些操作不会不受控地影响你的主机系统。两种项目模式(Direct 和 Clone)覆盖了从快速迭代到审慎审查的不同工作流需求。对于希望让 AI 代理自主完成开发任务的团队来说,这是一个值得尝试的方案。

Chirag Agrawal

What Claude Code Can and Can't Do with Full Access Inside a Docker Sandbox

Docker Sandbox access boundaries: Claude Code, private files, and a separate Docker daemon run inside the microVM. The host checkout is read-write in direct mode or read-only in clone mode. Outbound TCP passes through a host policy proxy, where proxy-managed credentials are injected for matching services. Unshared host files, host processes, and host Docker have no direct access path.

本文基于 freeCodeCamp 的公开内容,由 AI 辅助整理改写后发布。

原标题:What Claude Code Can and Can't Do with Full Access Inside a Docker Sandbox

阅读原文