Docker 沙盒
Table of contents
Docker 沙盒可简化在本地机器上安全运行 AI 代理的过程。 该功能专为使用 Claude Code 等编码代理进行开发的开发者设计, 将代理与您的本地机器隔离,同时保留熟悉的开发体验。 通过 Docker 沙盒,代理可以在容器化的工作区中执行命令、 安装软件包和修改文件,该工作区会镜像您的本地目录。 这让您在获得完整代理自主权的同时,也能确保安全性。
工作原理
当您运行 docker sandbox run <agent> 时:
-
Docker 从模板镜像创建容器,并将您当前的工作目录以相同路径挂载到容器中。
-
Docker 会发现您的 Git
user.name和user.email配置,并将其注入容器, 以便代理所做的提交归属于您。 -
首次运行时,系统会提示您进行身份验证。凭据会存储在 Docker 卷中, 并在后续的沙盒代理中重复使用。
-
代理在容器内启动,并启用了绕过权限。
工作区挂载
您的工作区目录会以相同的绝对路径(在 macOS 和 Linux 上)挂载到容器中。
例如,主机上的 /Users/alice/projects/myapp 在容器中也是
/Users/alice/projects/myapp。这意味着:
- 错误消息中的文件路径与主机匹配
- 硬编码路径的脚本能按预期工作
- 对工作区文件的更改在主机和容器上都立即可见
每个工作区一个沙盒
Docker 强制每个工作区只能有一个沙盒。当您在同一目录下运行
docker sandbox run <agent> 时,Docker 会复用现有的容器。
这意味着状态(已安装的软件包、临时文件)会在该工作区的
多次代理会话中持续保留。
Note要更改沙盒的配置(环境变量、挂载卷等), 您需要先移除再重新创建它。详情请参见 管理沙盒。
发布状态
Docker 沙盒是一项实验性功能。功能和设置可能会发生变化。
请在 GitHub 上报告问题:
开始使用
前往入门指南运行您的第一个沙盒代理。