--- summary: "在 Docker 沙箱中运行代理工具,并修复行为不当的网关容器" read_when: - "您希望在容器中隔离代理工具的执行" - "沙盒映像或 Control UI 配对不起作用" title: "Docker代理沙箱及故障排除" sidebarTitle: "沙箱和故障排除" --- 启用 Docker 代理沙箱,并修复沙箱图像、权限和 Control UI 配对。 [Docker](/install/docker) 指南的一部分。 ## Agent 沙箱 当通过 Docker 后端启用 `agents.defaults.sandbox` 时,网关在隔离的 Docker 容器内运行代理工具执行(shell、文件 read/write 等),而网关本身保留在主机上 — 围绕不受信任或多租户代理会话的硬墙,无需容器化整个网关。 沙箱范围可以是每个代理(默认)、每个会话或共享;每个示波器都有自己的工作空间,安装在 `/workspace`。您还可以配置 allow/deny 工具策略、网络隔离、资源限制和浏览器容器。 完整配置、镜像、安全说明和多代理配置文件请参见: - [沙箱](/gateway/sandboxing) -- 完整沙箱参考 - [OpenShell](/gateway/openshell) -- OpenShell-管理的本地或远程沙箱后端 - [多代理沙箱和工具](/tools/multi-agent-sandbox-tools) -- 每个代理覆盖 ### 快速启用 ```json5 { agents: { defaults: { sandbox: { mode: "non-main", // off | non-main | all scope: "agent", // session | agent | shared }, }, }, } ``` 构建默认沙箱镜像(从源码检出目录): ```bash scripts/sandbox-setup.sh ``` 对于没有源签出的 npm 安装,请参阅 [ 沙箱§图像和设置 ](/gateway/sandboxing#images-and-setup) 以了解内联 `docker build` 命令。 ## 故障排查 使用 [`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)(源码检出)或 [沙箱 § 镜像和设置](/gateway/sandboxing#images-and-setup) 中的内联 `docker build` 命令(npm install)构建沙箱镜像,或者将 `agents.defaults.sandbox.docker.image` 设置为你的自定义镜像。容器会按需为每个会话自动创建。 将 `docker.user` 设置为与你挂载的工作区所有权匹配的 UID:GID,或者将工作区文件夹的所有者改为当前用户。 OpenClaw 使用 `sh -lc`(登录 shell)运行命令,这会加载 `/etc/profile` 并可能重置 PATH。将 `docker.env.PATH` 设置为在前面追加你的自定义工具路径,或者在你的 Dockerfile 中于 `/etc/profile.d/` 下添加一个脚本。 本地源镜像构建至少需要 6 个 GB RAM。使用更大的机器类或预构建的映像并重试。 获取新的仪表盘链接并批准浏览器设备: ```bash docker compose run --rm openclaw-cli dashboard --no-open docker compose run --rm openclaw-cli devices list docker compose run --rm openclaw-cli devices approve ``` 更多详情:[仪表盘](/web/dashboard),[设备](/cli/devices)。 重置网关模式和绑定: ```bash docker compose run --rm openclaw-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]' docker compose run --rm openclaw-cli devices list --url ws://127.0.0.1:18789 ```