Docker Sandboxes Disposable Agent Runs
Docker Sandboxes:让 Agent 跑在「 trailer 」而不是「房间」里
Agent 拥有你机器的完整访问权
这件事很少被正面说,但它是真的:
当你对着一个 coding agent 说”帮我重构这个模块”,它执行的每一个命令都跑在你的用户权限下。rm -rf、读取 ~/.ssh/id_rsa、全局安装 npm 包、用你的 AWS 凭证发请求——全部直接作用于主机,没有缓冲,没有边界。
这不是理论风险。Agent 常规操作包括:删除它认为”安全”的文件、修改系统级配置、启动后台服务、暴露主机端口。如果你在跑 cron 无人值守,这些行为没有人看着。
行业的主流解法一直是”给权限就完事了”或者”每步都问”。两个都没法接受。前者危险,后者等于取消 Agent 的意义。
Docker 给出的答案是 Sandboxes。
为什么是 microVM,不是容器
容器是 Docker 的主营业务,为什么不用容器隔离?
因为容器共享宿主机的内核。这是一个根本性的约束——Linux namespace 隔离再完善,内核漏洞或 capability 配置错误可以一路提权到 root。容器的安全边界是内核,而内核是你无法控制的那一层。
Sandboxes 的方案是 microVM:每个 Agent 运行在独立的轻量虚拟机里,有自己的内核,有自己的文件系统,有自己的 Docker 引擎,hypervisor 是它和主机之间的隔离层。
Docker 自己有一句话很准确:给 Agent 一个锁着的房间,和给 Agent 一个停在外面的拖车,是两回事。房间共享你的管道和线路;拖车不共享。
这意味着:Agent 在沙箱里可以自由地 build 和 run Docker 容器,而这些操作作用在沙箱自己的 Docker 引擎上,不是宿主机的——这解决了长期困扰开发者的 Docker-in-Docker 问题,而且不需要任何 hacky 挂载。
解决了什么问题
1. 无人值守 Agent 第一次真正安全
cron 跑 Claude Code 或 Codex 任务,过夜跑、周末跑、没有人在旁边看——在此之前这是冒险行为。Sandboxes 把最坏情况控制在沙箱内:删就删了,重置重来,主机不受影响。
2. Docker-in-Docker 问题被优雅解决
Agent 需要在隔离环境里构建和运行容器,这以前要么挂载 host socket(等于把 host Docker 引擎的控制权交给 Agent),要么搞 Docker-in-Docker(脆弱且难管理)。Sandboxes 自带私有 Docker 引擎,天然解决这个问题。
3. 工作区路径一致性
项目目录以相同绝对路径挂载进沙箱。这意味着 error message 里的文件路径和主机上看到的完全一致,不需要额外映射。这是工程细节,但直接影响 Agent 的调试效率。
4. 网络隔离可配置
沙箱默认网络隔离,TCP/UDP/ICMP 原始流量被阻断,HTTP/HTTPS 流量走白名单代理。可以针对团队或组织统一配置网络策略,这是企业治理层面的需求。
时间点的巧合
这件事值得注意:
Anthropic 在 2026 年 8 月 14 日将「auto mode」设为新 Claude Code 会话的默认权限模式——也就是说,新会话下 Agent 默认不需要每步请求批准。
Docker 几乎同时发布 Sandboxes,并且明确说:在 Sandboxes 里可以安全地使用 --dangerously-skip-permissions(YOLO mode)。
这是两个独立的产品决策,但合在一起说的事情很清楚:行业正在把「无人值守 Agent」从一个需要小心翼翼的风险管理问题,变成一个可以在工程层面控制的基础设施问题。
限制:沙箱保了什么,没保什么
沙箱能保的:主机文件系统、网络、Docker 引擎、其他进程。
沙箱不能保的:
- Prompt injection:Agent 读取了有毒的网页内容,然后在沙箱里根据那些内容做了错误决策——这是沙箱无法防御的,因为那是 Agent 自己的推理过程,不是系统级操作
- 你主动挂载进去的内容:默认模式会把你的项目目录以读写方式挂载进去,Agent 对那个目录的修改会直接生效——隔离保护的是你的主目录和其他项目,不是你故意共享出去的部分
这两个限制不是缺陷,是边界。沙箱解决的是基础设施层的隔离,不解决 Agent 决策层的可靠性。
我的判断
Docker Sandboxes 的价值不是技术突破——microVM 隔离早就有,firecracker 等项目也做了类似的事。它的价值是把正确的隔离模型带到了 Agent 工具链的主流战场。
当 Docker 官方把这件事做成产品,并让它支持所有主流 coding agent(Claude Code、Codex、Copilot CLI、Gemini CLI、Kiro、OpenCode……),它就不再是极客的个人方案,而是一个可分发的工程标准。
接下来看的是:Sandboxes 的治理能力(Docker AI Governance)能不能真的在企业场景里落地,以及 Linux 支持和 MCP Gateway 支持什么时候来。这两个补齐之后,「用 Agent 跑生产任务」的基础设施才算真正完整。
参考
- Docker Sandboxes:https://www.docker.com/blog/docker-sandboxes-run-claude-code-and-other-coding-agents-unsupervised-but-safely/
- 安装(macOS):
brew trust docker/tap && brew install docker/tap/sbx - 安装(Windows):
winget install Docker.sbx
💬 评论
💡 使用 GitHub 账号登录 即可参与讨论