T
traeai
登录
返回首页
Docker

比较 AI 代理的沙盒方法 | Docker

8.5Score
比较 AI 代理的沙盒方法 | Docker

TL;DR · AI 摘要

Docker 比较了 AI 代理沙盒技术的多种实现方式,强调隔离性和安全性。

核心要点

  • Docker Sandboxes 提供轻量级隔离环境,适合运行 AI 代理。
  • NanoClaw 集成增强 Docker 沙盒的安全性,防止恶意代码执行。
  • 开发者可通过 Docker Hardened Images 获得企业级安全镜像。

结构提纲

按章节快速跳转。

  1. 介绍沙盒技术在 AI 代理开发中的重要性。

  2. 描述 Docker 提供的沙盒解决方案及其特点。

  3. ·NanoClaw 集成

    解释 NanoClaw 如何提升沙盒安全性。

  4. 说明 Docker Hardened Images 的作用和优势。

  5. 总结沙盒技术对 AI 代理开发的影响。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Sandboxing Approaches
    • Docker Sandboxes
      • Isolated Environments
    • NanoClaw Integration
      • Enhanced Security
    • Hardened Images
      • Enterprise-Ready

金句 / Highlights

值得收藏与分享的关键句。

#Docker#人工智能#沙盒#安全
打开原文

比较 AI 代理的沙箱方法 | Docker

跳至内容

Image 7

下载超过 800 名构建者和领导者对 AI 代理状态的见解副本

[](http://www.docker.com/)

  • AI

AI

更多开发者资源

![Image 8: 特色图片 Docker 将 Compose 带入代理时代:构建 AI 代理现在变得容易 Docker 加速代理开发 阅读更多](http://www.docker.com/blog/build-ai-agents-with-docker-compose/)

产品

![Image 9 使用 NanoClaw 和 Docker 沙箱实现安全的代理执行 NanoClaw 与 Docker 沙箱集成以运行 AI 阅读更多](http://www.docker.com/blog/nanoclaw-docker-sandboxes-agent-security/)

  • 开发者

开发者

更多开发者资源

![Image 10 推出 Docker Model Runner 更快速、更简单地在本地运行和测试 AI 模型 阅读更多](http://www.docker.com/blog/introducing-docker-model-runner/)![Image 11 快速交付。安全构建。保持竞争力。使用集成高效的解决方案满足对速度和安全性的不断增长需求 阅读更多](http://www.docker.com/resources/reducing-every-day-complexities-for-more-efficient-software-development-white-paper/)

获取最新的 Docker 新闻

  • 定价- [x] 年付 月付 ## Docker 个人版 ### $0 ### $0 面向需要构建和部署容器的基本工具的个人开发者。 立即开始 立即开始 #### 包含: #### Docker Desktop #### Docker Engine + Kubernetes #### Docker Hub #### Docker Scout #### Docker Debug #### 使用范围: #### 1 用户 #### 1 个启用 Docker Scout 的仓库* #### 每小时 100 次 Docker Hub 拉取* #### 1 个私有 Docker Hub 仓库 #### Docker Build Cloud 和 Testcontainers Cloud 免费试用 ## Docker Pro ### $11 ### $9 每用户/月 面向需要更高级功能和额外资源的专业个人用户。 立即购买 立即购买 #### 包含: #### Docker Build Cloud #### Testcontainers Cloud #### 同步文件共享 #### 查看 Docker Scout 健康评分 #### 5 个工作日支持响应时间 #### 使用范围: #### 1 用户 #### 2 个启用 Docker Scout 的仓库 #### 无限制 Docker Hub 拉取速率 #### 200 分钟 Docker Build Cloud 构建时间 #### 100 分钟 Testcontainers Cloud 运行时间 最受欢迎 ## Docker 团队版 ### $16 ### $15 每用户/月 面向需要协作工具以提高团队效率的小型团队。 立即购买 立即购买 #### 包含: #### 批量添加用户 #### 审计日志 #### Docker Hub 基于角色的访问控制 #### 2 个工作日支持响应时间 #### 使用范围: #### 最多 100 用户 #### 无限数量的启用 Docker Scout 的仓库 #### 无限制 Docker Hub 拉取速率 #### 无限制私有 Docker Hub 仓库 #### 500 分钟 Docker Build Cloud 构建时间 #### 500 分钟 Testcontainers Cloud 运行时间 #### 10 个组织访问令牌 #### 1 个 Docker Hub 组织 ## Docker 企业版 ### $24 ### $24 每用户/月 面向希望获得强大安全、控制和合规功能的企业。 立即购买 立即购买 联系销售 联系销售 #### 包含: #### 加固版 Docker Desktop #### 单点登录 (SSO) #### SCIM 用户配置 #### 镜像和注册表访问管理 #### 桌面洞察仪表盘 #### 增强容器隔离 (ECI) #### 发票支付 #### 1 个工作日支持响应时间 #### 使用范围: #### 无用户上限 #### 无限数量的启用 Docker Scout 的仓库 #### 无限制 Docker Hub 拉取速率 #### 无限制私有 Docker Hub 仓库 #### 1,500 分钟 Docker Build Cloud 构建时间 #### 1,500 分钟 Testcontainers Cloud 运行时间 #### 100 个组织访问令牌 #### 无限数量的 Docker Hub 组织*** Image 12## Docker 加固镜像 (DHI)

为每个团队提供的安全、最小化的容器镜像,如果需要,企业功能免费提供。开始免费试用

公司

![Image 13 Docker 宣布 SOC 2 Type 2 认证 & ISO 27001 认证 了解这对 Docker 安全和合规意味着什么 阅读更多](http://www.docker.com/blog/docker-announces-soc-2-type-2-attestation-iso-27001-certification/)

搜索

登录开始使用

切换菜单

Docker Captain

比较不同的沙盒方法

发表于 2026 年 5 月 7 日

Image 14: Siri Varma Vegiraju 的文章

Siri Varma Vegiraju

“_AI 代理将成为未来我们与计算机交互的主要方式。它们能够理解我们的需求和偏好,并主动帮助我们完成任务和决策。_“

萨提亚·纳德拉

微软首席执行官

无论你是软件工程师、产品经理还是设计师,这句话都应该从根本上改变我们对待日常工作的态度。我们不再只是构建界面;我们正在创建一个环境,在这个环境中,代理可以以最少的人工干预自主运行。那么,这种环境的基本要求是什么?

用一个词概括:隔离。

与传统软件交互的用户受限于软件允许的操作。但代理是非确定性的,因此容易出现幻觉和提示注入。一旦你给 AI 提供对系统的写访问权限,就没有什么能阻止它执行 rm -rf 来删除所有数据。当然,解决这个问题有不同的方法,其中一种是沙盒化:这是一种用于实验和测试的隔离、受控环境,不会影响周围系统。

因此,我开始探索不同的策略来为代理设置沙盒。从最基础的配置开始,一直到设置云虚拟机(VM)。以下是我每一步学到的内容。

1. 让我们从基准开始

Chroot 一直是实现文件系统隔离的传统方法。当你希望某个进程认为某个特定的、受限的目录是机器的绝对根目录时,它工作得很好。

Image 15: image5

然而,这里有两个主要问题。

  1. 如果 chroot 内的进程拥有 root 权限,它可以突破限制。
  2. 虽然它提供了文件隔离,但进程隔离仍然是一个问题。恶意代理仍然可以看到系统上运行的其他进程,并尝试终止它们。
Image 16: image8

如上所示,执行 ls /proc 仍会显示主机上运行的所有进程。

这时我了解到了 systemd-nspawn,也被称为“增强版 chroot”。chroot 和 systemd-spawn 的区别在于后者除了文件系统外,还提供了网络和进程级别的隔离。

Image 17: image3 1

现在,当我执行相同的 ls /proc 命令时,在 systemd-nspawn mybox 容器 中,我只能看到 mybox 容器中的进程,从而实现了进程级隔离。

Image 18: image6

**优点**

  1. 相较于其他容器化过程(如 Docker),它更轻量,启动时间更快。
  2. Linux 原生支持。

**注意事项**

  1. 除非深入 Linux 领域,否则 systemd-nspawn 在开发者社区中并不流行。
  2. 虽然这适用于 Linux,但如果需要在 Windows 上运行你的代理呢?你需要根据平台寻找替代方案。

2. 容器够用吗?

当我们想到隔离环境时,另一个技术就是 Docker。与我们之前讨论的概念不同,Docker 拥有更广泛的生态系统和强大的社区支持。

通过容器,你还可以获得隔离的文件系统、网络接口和进程树。它们还具有跨平台支持,可以在 Mac、Windows 和 Linux 上运行。凭借这些优势,跨不同平台创建和运行代理变得非常简单,这使得容器成为显而易见的选择。

然而,当容器成为代理的开发平台时,模型变得更加复杂。通常,代理需要在单独的环境中执行生成的代码,这意味着在实践中需要按需启动新的 Docker 容器。这引入了容器嵌套模式(Docker-in-Docker),即运行在容器内的代理需要构建并运行其他容器。

为了使 Docker-in-Docker 正常工作,我们必须以特权模式运行容器(--privileged),这赋予容器进程提升的权限权利,极大地削弱了隔离性。此时,隔离保证显著降低。因此,仅使用容器为代理提供完全隔离变得棘手。

3. 虚拟机有帮助吗?

正如你可能已经预测到的那样,虚拟机(VMs)提供了最强的隔离。通过虚拟机,你可以拥有整个操作系统、文件系统和网络。例如,我目前在 MacOS 上使用 lima – Linux VM 来运行特定于 Linux 的工作负载。

Image 19: image10

然而,权衡是启动虚拟机的成本较高。如果每个代理都需要这样做,这是不可扩展的。以下是一些数据,展示了使用 system-nspawn 启动虚拟机的成本。

| 方法 | 每个代理成本 | 启动时间 | 10 个代理 | | --- | --- | --- | --- | | 方法 VM (Lima) | 每个代理成本 ~4GB RAM + 4 CPU | 启动时间 30-60 秒 | 10 个代理 ~40GB RAM | | 方法 systemd-nspawn | 每个代理成本 ~10MB RAM | 启动时间 < 1 秒 | 10 个代理 ~100MB RAM | | 方法 chroot | 每个代理成本 1MB RAM | 启动时间 瞬间 | 10 个代理 ~10MB RAM |

例如,在下面的截图中,你可以看到运行 lima 虚拟机的成本。

Image 20: image7

4. MicroVM 来解救

MicroVM(微型虚拟机)似乎是对隔离需求的完美解决方案。那么什么是 MicroVM,它为什么更好?

MicroVM 是一种轻量级虚拟化技术,它提供了传统虚拟机的强大安全性和隔离性,同时具备容器的速度。

  1. 通过为每个 MicroVM 提供独立的内核(即 Guest Kernel),实现了强大的安全性和隔离性,这与容器共享主机内核的方式不同。因此,Guest OS 内的任何漏洞都不会直接影响主机或其他 VM。
  2. 速度:与传统虚拟机不同,MicroVM 配置了最小化的硬件(没有 USB 或 PCI 总线),并绕过了 BIOS/UEFI 引导,显著减少了设备仿真开销和启动延迟。
Image 21: image4

亚马逊在 2018 年开源了 Firecracker,这是 MicroVM 架构最早的采用之一。尽管这推动了 MicroVM 架构的发展,但 Firecracker 仅限于 Linux 环境。而大多数开发者的笔记本电脑运行的是 MacOS 和 Windows,代理编排通常也发生在这里。

Docker 通过其 Sandbox 解决方案填补了这一空白。最棒的部分是其基于 MicroVM 的架构,可以在 macOS、Windows 和 Linux 上原生运行,提供更好的隔离性、更快的启动时间和更流畅的开发者体验。我们稍后会详细了解这一点。

5. gVisor

gVisor 采用了一种独特的解决隔离问题的方法。虽然之前的策略使用了操作系统内核,但 gVisor 创建了自己的运行在用户空间的内核,称为“应用内核”。

当一个标准的容器化应用程序想要执行诸如打开文件、分配内存或发送网络流量等操作时,它会直接向主机的 Linux 内核发出“系统调用”(syscall)。

在 gVisor 中,你的应用程序会与一个名为 Sentry 的组件捆绑在一起。

  1. Sentry 拦截应用程序发出的每一个 syscall。
  2. 它使用自己实现的 Linux 网络、文件系统和内存管理功能在用户空间中处理这些请求。
  3. 如果 Sentry 必须让主机内核执行某些操作(例如实际的磁盘 I/O),它会将请求转换为极其受限、高度过滤的安全调用。

然而,它与 systemd-nspawn 存在同样的问题:缺乏广泛的社区支持,并且仅支持 Linux。

Docker Sandbox

通过 Docker Sandbox,AI 编码代理可以在隔离的 MicroVM 环境中运行。性能几乎无缝,与在主机上运行相同,但具有更强的隔离性和安全性。这意味着你可以运行自主代理,而不必担心主机被攻破或意外访问本地环境。

Sandbox 通过三层隔离实现了这种级别的安全性:

Image 22: image9

虚拟机监控程序隔离:每个 Sandbox 都有自己的 Linux 内核。因此,任何影响 sandbox 内核的操作都不会影响主机或其他 sandbox 内核。

网络隔离

  • 每个 Sandbox 都有自己的隔离网络。这意味着多个 sandbox 之间无法相互通信,也无法与主机通信。
  • 此外,可以强制执行网络策略以允许或禁止来自特定源的流量。

Docker Engine 隔离

  • 这是我爱上这种新架构的原因。每个 Sandbox 都有自己的 Docker Engine。因此,每当代理运行 docker pulldocker compose 命令时,这些命令都会针对内部引擎执行,而不是外部的 Docker 守护进程。
  • 因此,运行在内部的代理只能看到其 sandbox 内的 Docker 服务,而看不到其他内容,从而增加了额外的安全层。

| 属性 | 传统虚拟机 | 容器 | Docker MicroVM | | --- | --- | --- | --- | | 属性 隔离性 | 传统虚拟机 强(专用内核) | 容器 弱(共享内核) | Docker MicroVM 强(专用内核) | | 属性 启动时间 | 传统虚拟机 分钟 | 容器 毫秒 | Docker MicroVM 秒(首次拉取镜像后) | | 属性 攻击面 | 传统虚拟机 大 | 容器 中等 | Docker MicroVM 最小 |

为了演示 Docker Engine 的隔离性,我创建了两个 Sandbox 会话,在其中一个会话中运行了 Docker 的 hello-world 容器镜像,然后在两个会话中分别运行了 docker ps -a

Image 23: image2 1

​从下图可以看出,一个会话中有 hello-world 容器,另一个则没有。这是因为它们正在运行两个不同的 Docker Engine 守护进程。

Image 24: image1 2

更多关于 Sandbox 架构的信息,请参见:https://www.docker.com/blog/why-microvms-the-architecture-behind-docker-sandboxes/

结论

如果有一个关键点需要记住,那就是:在构建自主 AI 代理时,隔离性起着至关重要的作用,因为安全错误的影响范围可能非常大。

我们迄今为止探讨的每种方法都解决了隔离难题的不同部分。容器提高了可移植性和开发者体验,但继承了共享内核的风险。虚拟机提供了强大的隔离性,但在启动数十个代理时,其开销难以扩展。gVisor 处于一个有趣的中间地带,但兼容性和社区权衡可能会拖慢你的步伐。

在所有这些方法中,使 带有 MicroVM 的 Docker Sandbox 引人注目的是它如何统一了这些维度:VM 级别的安全性、类似容器的启动速度以及开发者已经熟悉的流程。每个 Sandbox 的独立 Docker Engine 和严格的网络边界使其成为大规模运行不可信、自主工作负载的强大基础。

那么,你还在等什么?今天就去试试吧。

对于 macOS:brew install docker/tap/sbx

对于 Windows:winget install Docker.sbx

Agentic AIAI AgentDocker SandboxDocker Sandboxes社区

目录

[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.docker.com%2Fblog%2Fcomparing-sandboxing-approaches-ai-agents%2F "访问此 Linkedin 个人资料")[](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.docker.com%2Fblog%2Fcomparing-sandboxing-approaches-ai-agents%2F "访问此 X 个人资料")[](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.docker.com%2Fblog%2Fcomparing-sandboxing-approaches-ai-agents%2F "访问此 Facebook 个人资料")

相关文章

产品

功能

开发者

定价

公司

语言

  • [](http://twitter.com/docker)
  • [](https://www.linkedin.com/company/docker)
  • [](https://www.instagram.com/dockerinc/)
  • [](http://www.youtube.com/user/dockerrun)
  • [](https://www.facebook.com/docker.run)
  • [](http://www.docker.com/blog/feed)

© 2026 Docker Inc. 保留所有权利

服务条款隐私政策法律声明

Cookie 设置

通过点击“接受所有 Cookie”,您同意在您的设备上存储 Cookie,以增强网站导航、分析网站使用情况并协助我们的营销工作。

Cookie 设置 拒绝全部 接受所有 Cookie

图像 32: 公司标志

隐私偏好中心

当您访问任何网站时,它可能会在您的浏览器中存储或检索信息,通常以 Cookie 的形式。这些信息可能是关于您、您的偏好或您的设备的,并主要用于使网站按您期望的方式运行。这些信息通常不会直接识别您,但可以为您提供更个性化的网络体验。由于我们尊重您的隐私权,您可以选择不允许某些类型的 Cookie。单击不同的类别标题以了解更多信息并更改我们的默认设置。但是,阻止某些类型的 Cookie 可能会影响您对网站的体验以及我们能够提供的服务。

更多信息

允许全部

管理同意偏好

#### 功能性 Cookie

  • [x] 功能性 Cookie

这些 Cookie 使网站能够提供增强的功能和个性化服务。它们可能由我们或添加到我们页面中的第三方提供商设置。如果您不允许这些 Cookie,则其中一项或所有这些服务可能无法正常运行。

#### 必需 Cookie

始终启用

这些 Cookie 对于网站的运行是必需的,无法在我们的系统中关闭。它们通常仅在您执行相当于请求服务的操作(例如设置隐私偏好、登录或填写表单)时设置。您可以将浏览器设置为阻止或提醒您注意这些 Cookie,但如果这样做,网站的部分功能将无法使用。这些 Cookie 不会存储任何可识别个人身份的信息。

#### 性能 Cookie

  • [x] 性能 Cookie

这些 Cookie 允许我们统计访问次数和流量来源,以便我们可以衡量和改进网站的性能。它们帮助我们了解哪些页面最受欢迎和最不受欢迎,并查看访问者如何浏览网站。这些 Cookie 收集的所有信息都是汇总的,因此是匿名的。如果您不允许这些 Cookie,我们将不知道您何时访问了我们的网站,也无法监控其性能。

#### 定向 Cookie

  • [x] 定向 Cookie

这些 Cookie 可能通过我们的网站由我们的广告合作伙伴设置。它们可能被这些公司用来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不存储直接的个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许这些 Cookie,您将看到较少的目标广告。

Cookie 列表

清除

  • [x] 复选框标签 标签

应用 取消

同意 合法利益

  • [x] 复选框标签 标签
  • [x] 复选框标签 标签
  • [x] 复选框标签 标签

拒绝全部 确认我的选择

图像 33: OneTrust 提供支持

图像 34图像 35

AI 可能会生成不准确的信息,请核实重要内容