Docker Sandboxes:AI 代理的安全沙盒
Docker Sandboxes – Disposable, isolated sandboxes for AI agents

Docker 推出了全新的 Docker Sandboxes,为 Claude Code、Gemini CLI 等 AI 编程代理提供一次性且隔离的执行环境。这些沙盒基于微虚拟机构建,让 AI 代理能够自由安装软件包、修改配置甚至运行 Docker 容器,同时确保宿主系统完全不受影响。通过这种隔离机制,开发者可以在无需人工审查或权限提示的情况下,安全地让 AI 代理执行长时间任务。Docker Sandboxes 不仅解决了速度与安全的权衡难题,还默认支持“YOLO 模式”,让团队在享受 AI 自主性的同时,通过 Docker AI Governance 实现企业级的安全管控。
代理在拥有自由时能发挥最佳表现,沙盒让它们既能快速运行又不会失控,从而使速度与安全不再需要权衡。
HN 评论区
388- srini-docker
既然大家都在分享自己的配置,我也来分享一下我的做法,给大家一个参考,尽管看起来可能不太实用:我在 Linux 主机上运行了一个完整的 Linux 虚拟机(带图形界面)。我通过 virt-viewer 连接并运行 Claude Desktop,因为我不喜欢用终端来做这件事。
这台虚拟机位于一个独立的 libvirt 网络中,处于专用的防火墙区域,特定目录通过文件系统直通进行共享。为了防止代理访问任何与 Git 相关的内容,实际的 gitdir 存储在挂载点之外的独立路径上。
我会手动审查 git diff,并在主机上提交代码。
- rusch
登录有点烦人,但鉴于缺乏开源替代方案,这一直是我日常使用的工具,因为它开箱即用,具备两个关键功能:出站防火墙和占位符形式的密钥注入。
我用 superset 运行它,然后将每个 git worktree 挂载到为每个我工作的仓库配置的沙盒中。
我见过的最接近的开源方案是 https://earendil-works.github.io/gondolin,但开发者体验(DX)不够完善。https://exe.dev/ 会很完美,但它没有出站防火墙。
有没有更好的替代方案?
- Roark66
为什么不直接在工具使用层面实施适当的权限控制,或者如果需要更多灵活性,使用一个专用模型来分析潜在影响呢?(就像 Claude Code 的 Autopilot,但可配置性更强)?
我觉得这类解决方案就像在湖上用胶带修补漏水的船。虽然有用,但这并不是一个彻底的解决方案。
此外,你希望 AI 执行的任务往往涉及外部世界。比如“连接到我的服务器,找出 X 和 Y”。
正确的方式是权限隔离。我在家庭实验室中运行一个小型 k8 集群,并为我的 AI 代理设置了三种类型的 pod/代理组合:只读型、可修改我的 gitops 但需要创建由管理员审批的 PR 型,以及管理员型。
代码方面也是如此。我有一个 forgejo git 实例,代理可以创建特性分支等,但合并操作受到管控。
这些功能需要
- Grimburger
最近这两起事件实际上都不是容器逃逸。7 月份 OpenAI 的那起是因为沙盒网络配置错误,而上周的 Kimi K3 只是在评估过程中直接走出去从 GitHub 获取答案。
两者都是通过沙盒允许访问的途径进行的。
- PufPufPuf
我开发了
- hokkos
> 每个代理都在一个专用的微虚拟机中运行,其中包含你的开发环境
什么是“微虚拟机”?与使用具有实际突破限制的真正的虚拟机相比,这里的安全模型是什么?
这只是营销噱头吗?
Incus/LXD 早就支持虚拟机了。
incus launch images:ubuntu/26.04 my-ubuntu-vm --vm
incus exec my-ubuntu-vm -- bash
- sureglymop
我敢肯定他们修复了这个问题,但既然大家都以 root 身份运行 docker 容器……这个工具写入的每个文件都会是 root 所有吗?它是否拥有 root 权限来访问任何资源以获得可见性?
- codethief
我目前正面临这个问题。我已经退而求其次,实现了一个功能有限的自定义执行环境。
大致如下:
- bash 脚本解析器 + 解释器(带有文件打开、执行等操作的钩子)
- 用于执行的 wasm 执行器。
- 来自 uutils 项目的常用工具(如 coreutils、grep、sed 等)的 wasm 实现。
- 由 VMware 支持的项目提供的 Python 的 wasm 实现。
- 完全虚拟化的文件系统,使用 Go 的 io/fs.FS。(临时目录可以使用任何后端实现)
对于我有限的用例来说,效果非常好。当然,wasm 中的线程支持和尤其是预打开(preopens)确实存在一些缺点。但这对于简单的文件探索和最小计算来说,是一个廉价的沙盒方案。