惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
博客园 - 司徒正美
Jina AI
Jina AI
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
S
SegmentFault 最新的问题
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - Franky
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 悠哉大斌

AI治好了我的linux桌面恐惧症 全新Qoder CN (非Qoder CN IDE)技术架构分析 AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 debian(WSL) apt 代理配置 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g Claude Code CLI连接 DeepSeek V4模型后调用报400错误 python里对象(object)到底是什么 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的?
Docker Sandboxes 技术是什么,和docker容器有什么区别
悠哉大斌 · 2026-06-07 · via 博客园 - 悠哉大斌

Docker Sandboxes 是什么?

docker_sandbox_vs_container_comparison

Docker Sandboxes 是 Docker 于 2025 年底推出的一种面向 AI 编码 Agent 的本地隔离沙盒方案,核心思路是把 Claude Code、Gemini CLI、Codex 等编码 Agent 包裹在一个独立的隔离环境中运行,让 Agent 拥有足够的操作空间,同时对宿主机不产生任何影响。

Docker首席运营官Mark Cavage在接受采访时表示:"Docker Sandbox是一种新的原语,具有Docker的人体工程学特性和我所描述的Docker理念。但它从根本上是一种不同的原语。它实际上是一个微虚拟机,具有真正的隔离性,拥有自己专用的内核和硬件空间。"

Cavage说Docker的本质是可移植性、隔离性和简洁性。但他表示,容器假设某种程度的不可变性。Docker Sandbox更像是一个真正的进程监狱,强制执行隔离。


与普通 Docker 容器的核心区别

关键差异在于隔离层级

普通 Docker 容器的隔离基于 Linux 的 namespace 和 cgroup,本质上是进程级隔离——所有容器共享宿主机的同一个内核。这对服务部署足够了,但如果容器内跑的是 AI Agent,共享内核意味着 Agent 一旦触发某些内核漏洞,就可能影响到整个宿主机。

Docker Sandboxes 是微虚拟机 microVM ,拥有自己专用的内核和硬件空间,实现真正的隔离。每个 Sandbox 拥有自己独立的 Docker Daemon、文件系统和网络栈。Agent 可以安装软件包、修改配置、甚至在 Sandbox 内部再启动 Docker 容器,但宿主机完全不受影响。这使得Sandbox比普通容器更安全,Sandbox能够防止智能体接触宿主机器,即使出现幻觉或行为异常也不会造成系统性风险。

microVM 提供的轻量性、低开销(对比完整虚拟机)与完整隔离的组合,使 Docker Sandboxes 比普通容器或完整虚拟机更适合 AI Agent 工作负载——普通容器隔离不够,完整 VM 开销又太大。


主要特性对比

普通 Docker 容器 Docker Sandboxes
隔离层级 OS-level(namespace) Hypervisor-level(microVM)
内核 共享宿主机内核 独立内核
Docker Daemon 共用 每个 Sandbox 独立一个
宿主机风险 存在逃逸风险 硬隔离,宿主机不受影响
适用场景 服务部署、CI/CD AI 编码 Agent 无人值守执行
启动速度 毫秒级 比完整 VM 快,比普通容器稍慢
支持的 Agent Claude Code、Gemini CLI、Codex、Kiro 等

典型使用场景

在 Docker Sandbox 内,Agent 可以完整镜像你的工作区——项目文件、目录结构和凭证完全按宿主机的状态挂载进来,同时执行过程完全隔离,Agent 安装的包、修改的配置、运行的构建操作都不会触碰宿主机系统。

只需运行 docker sandbox run <agent>,就会创建一个新的隔离环境,并将当前工作目录以挂载方式绑定进去。这让你可以放心开启 Agent 的"YOLO 模式"(无需人工审批确认),大幅提升开发效率。

简而言之:普通容器是为服务部署设计的,Docker Sandboxes 是为 AI Agent 的安全自主运行设计的,核心卖点是把"Agent 跑起来有多快"和"宿主机有多安全"这两个目标同时实现。

Docker Sandbox 在 windows、mac、linux上的实现方式

docker_sandboxes_platform_implementation_v5

为什么不直接用 Firecracker?

这是理解 Docker Sandboxes 实现方式的关键背景。
Firecracker 是最知名的 microVM 运行时,但它是为云端基础设施(Linux/KVM 环境,如 AWS Lambda)设计的,没有对 macOS 或 Windows 的原生支持。而编码 Agent 不跑在云端,它们跑在开发者的笔记本上,横跨三个平台。如果强行给 Linux-first 的 VMM 打补丁来支持多平台,只会得到脆弱的兼容层,反而让开发者嫌麻烦、跳过沙盒。 因此 Docker 选择自己造轮子,构建了一个专有 VMM,核心目标就是跨平台原生支持。

三平台实现细节

macOS:Hypervisor.framework

Docker 自研的 VMM 在 macOS 上直接调用 Apple 的 Hypervisor.framework,这是 macOS 内置的原生虚拟化框架,M 系列芯片和 Intel Mac 均支持,无需任何额外安装。 InfoWorld

Windows:Windows Hypervisor Platform(WHP)

Windows 上需要启用 Windows Hypervisor Platform 功能Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All,用管理员权限在 PowerShell 中执行一条命令即可开启,底层依托 Hyper-V 内核层提供硬件级隔离。 Docker

Linux:KVM

Linux 上使用 KVM(内核虚拟机),要求 CPU 支持硬件虚拟化(Intel VT-x 或 AMD-V)。如果在虚拟机内运行,还需要开启嵌套虚拟化。检测kvm:lsmod | grep kvm

总结

简而言之:普通容器是为服务部署设计的,Docker Sandboxes 是为 AI Agent 的安全自主运行设计的,Sandboxes以更高的资源开销(一个虚拟机及其独立的守护进程)换取了完全的隔离性.

官网

https://docs.docker.com/ai/sandboxes/get-started/