深度

OpenClaw Docker 沙箱安全指南:工具隔离、工作区访问控制与自定义镜像

OpenClaw Docker 沙箱完整配置指南:三种沙箱模式(off/non-main/all)、三种容器范围(session/agent/shared)、工作区访问控制(none/ro/rw)、基础与功能完整镜像构建、自定义 Bind 挂载安全配置、容器初始化命令、沙箱浏览器,以及多 Agent 独立沙箱配置。

2026/3/124分钟 阅读ClaudeEagle

OpenClaw 支持在 Docker 容器中运行工具,降低 AI 误操作的影响范围。沙箱是可选功能,默认关闭——开启后,execreadwrite 等工具在隔离容器中执行,Gateway 本身仍在宿主机上运行。

沙箱不是完美的安全边界,但能有效限制模型做蠢事时的文件和进程访问范围。

沙箱化的工具

在容器中运行execreadwriteeditapply_patchprocess 等文件/执行类工具,以及可选的沙箱浏览器。

不在容器中:Gateway 进程本身;通过 tools.elevated 显式指定在宿主机运行的工具。

三种沙箱模式(mode)

模式说明
off不启用沙箱(默认)
non-main仅非主 Session 使用沙箱(推荐)
all所有 Session 都在容器中运行

non-main 基于 Session Key(默认 main),不是 Agent ID。群组/频道 Session 都是非主 Session,会被沙箱化。

三种容器范围(scope)

范围说明
session(默认)每个 Session 一个独立容器
agent同一 Agent 的所有 Session 共用一个容器
shared所有沙箱 Session 共用一个容器

工作区访问(workspaceAccess)

选项说明
none(默认)容器内使用独立沙箱工作区(~/.openclaw/sandboxes/
ro将 Agent 工作区以只读方式挂载到容器的 /agent
rw将 Agent 工作区以读写方式挂载到容器的 /workspace

最简启用配置

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "scope": "session",
        "workspaceAccess": "none"
      }
    }
  }
}

构建沙箱镜像

bash
# 基础镜像(仅核心工具,无 Node)
bash scripts/sandbox-setup.sh

# 功能更完整的镜像(含 curl/jq/nodejs/python3/git)
bash scripts/sandbox-common-setup.sh

# 沙箱浏览器镜像
bash scripts/sandbox-browser-setup.sh

使用 common 镜像:

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "image": "openclaw-sandbox-common:bookworm-slim"
        }
      }
    }
  }
}

默认镜像不含 Node.js。如果 Skill 需要 Node,需自行构建镜像或通过 setupCommand 安装(需要网络出口)。

自定义 Bind 挂载

将宿主机目录挂载到容器内:

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "binds": [
            "/home/user/source:/source:ro",
            "/var/data/myapp:/data:ro"
          ]
        }
      }
    },
    "list": [
      {
        "id": "build",
        "sandbox": {
          "docker": {
            "binds": ["/mnt/cache:/cache:rw"]
          }
        }
      }
    ]
  }
}

全局 binds 和 per-agent binds 会合并(不是替换)。

安全注意

  • 敏感目录(密钥、SSH 等)尽量用 :ro
  • 禁止挂载 docker.sock/etc/proc/sys/dev(OpenClaw 自动阻止)

容器初始化命令(setupCommand)

容器创建后只运行一次(不是每次执行都跑):

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "docker": {
          "network": "bridge",
          "setupCommand": "apt-get update && apt-get install -y ffmpeg"
        }
      }
    }
  }
}

注意事项

  • 默认网络是 none(无出口),安装包需先设置 network: "bridge"
  • readOnlyRoot: true 时无法写入,需设为 false 或用自定义镜像
  • 需要 root 用户安装软件(省略 user 字段或设 "0:0"

沙箱浏览器配置

json
{
  "agents": {
    "defaults": {
      "sandbox": {
        "browser": {
          "autoStart": true,
          "network": "openclaw-sandbox-browser",
          "allowHostControl": false
        }
      }
    }
  }
}
  • autoStart: true:浏览器工具需要时自动启动容器
  • allowHostControl: true:允许沙箱 Session 显式控制宿主机浏览器
  • 支持 noVNC 观察访问(短效 Token URL,密码在 URL Fragment 中,不写日志)

多 Agent 沙箱独立配置

json
{
  "agents": {
    "list": [
      {
        "id": "personal",
        "sandbox": { "mode": "off" }
      },
      {
        "id": "family",
        "sandbox": { "mode": "all", "scope": "agent" },
        "tools": {
          "allow": ["read"],
          "deny": ["exec", "write", "edit"]
        }
      }
    ]
  }
}

调试沙箱

bash
# 查看当前沙箱配置和工具策略
openclaw sandbox explain

工具策略与沙箱的关系

  • 工具 allow/deny 策略在沙箱规则之前执行
  • 被 deny 的工具,沙箱无法让它重新可用
  • tools.elevated 是显式逃逸机制,让 exec 在宿主机上运行
  • 详见:Sandbox vs Tool Policy vs Elevated

原文:Sandboxing - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

深度OpenClaw Docker 沙箱安全指南:隔离 AI 工具执行、保护主机系统OpenClaw Docker 沙箱安全配置:三种沙箱模式(off/non-main/all)、三种容器粒度(session/agent/shared)、工作区访问权限控制、自定义挂载安全限制、沙箱浏览器、per-Agent 覆盖,以及 Elevated 工具逃生通道的使用注意事项。2026/3/1深度OpenClaw Capability 架构指南:插件边界、共享运行时和供应商解耦OpenClaw Capability Cookbook 官方文档中文整理:什么时候创建 capability、标准开发顺序、core/vendor plugin/feature plugin 分工、provider registry、runtime helper、image generation 示例和架构审查清单。2026/6/4深度Claude Computer Use 完整指南:桌面自动化、Agent Loop 与安全隔离实践Claude Computer Use 官方文档中文整理:功能定位、支持模型、beta header、工具配置、截图/鼠标/键盘控制、agent loop、参考实现、Docker 沙箱、网络 allowlist、prompt injection 风险和生产安全建议。2026/5/21深度OpenClaw vs Hermes Agent:2026 年两大开源 AI Agent 框架深度对比与选型OpenClaw 和 Hermes Agent 深度对比:记忆系统、自学习技能、LLM 支持(Claude vs 200+ 模型)、部署方式、适用场景全面分析,附决策指南和两者互补组合方案。2026/4/13深度OpenClaw 多 Gateway 架构完全指南:一台机器运行多个独立 AI 助手实例OpenClaw 多 Gateway(Multi-Gateway)架构完整教程:多实例的隔离优势、同一台机器运行多个 Gateway(不同端口/配置文件/workspace)、systemd 管理多个 Gateway 服务、Nginx 虚拟主机为每个实例分配独立域名、API Key 隔离与成本拆分、单机多实例 vs 多机方案对比,以及 Docker Compose 多容器隔离部署方案。2026/3/26深度OpenClaw Hooks 自动化进阶:消息前后的智能拦截、转换与触发机制OpenClaw Hooks(钩子)自动化系统进阶教程:Hooks 的触发时机(before-send/after-receive/on-tool-call)、用 Hooks 拦截消息并修改内容(自动翻译/过滤/格式化)、基于条件的 Hook 触发(渠道过滤/关键词匹配)、Hook 中调用外部 API(Notion 记录/Bark 通知/监控告警)、exec 工具二次确认 Hook,以及 Hooks 与 SOUL.md 和 Standing Orders 的优先级关系详解。2026/3/26