🎯 做完你会得到
代码在隔离环境运行,系统安全有保障;测试未知脚本不担心破坏环境;轻松清理,不留痕迹。
👤 适合谁
- 需要处理未知/第三方代码的开发者
- 对系统安全有要求的企业用户
- 想测试各种 AI 编程工具又不想污染本机的人
⚡ 效果预览
AI 收到第三方Python脚本,在Docker容器中隔离运行:脚本执行完毕,未接触主机文件系统,容器已销毁,环境干净。
这个场景解决什么问题
AI 编程的两大担忧:
- 代码安全性未知:AI 生成的或第三方的代码,不知道有没有恶意,会不会删文件/偷数据
- 环境污染:在主机上安装各种依赖,版本冲突,清理麻烦
安全方案:用 Docker 容器运行所有 AI 编程任务,系统级隔离,运行完即销毁。
前置条件
- Docker 或 Podman 已安装
- OpenClaw 版本 >= 2026.2.22
配置步骤
1. 检查环境
# 检查 Docker 是否可用
docker --version
# 检查 Podman 是否可用(Docker 的替代,不需要 root)
podman --version
# 如果都没有,安装 Docker
# Mac: brew install --cask docker
# Linux: curl -fsSL https://get.docker.com | sh
2. 基础容器运行
# 方式A:直接用 OpenClaw 的 --container 选项
openclaw run "帮我写一个Python脚本处理这个CSV文件" --container
# 方式B:在容器内执行特定文件
openclaw exec --container ./test-script.py
# 方式C:指定容器镜像
openclaw run --container --image python:3.11-slim "分析这个Excel数据"
3. 创建专属代码沙箱
# 创建代码分析专用的 Docker 镜像
cat > Dockerfile.sandbox << 'EOF'
FROM python:3.11-slim
# 只安装必要的工具
RUN pip install pandas openpyxl matplotlib
# 不允许网络访问(更安全)
RUN apt-get update && apt-get install -y curl && \
# 限制只能访问特定API
echo "allowlist = [\"api.github.com\"]" >> /etc/hosts
# 容器内不允许root运行
USER 1000
WORKDIR /workspace
EOF
# 构建镜像
docker build -f Dockerfile.sandbox -t openclaw-sandbox .
4. 配置 OpenClaw 使用沙箱
# AGENTS.md 中添加
## 代码执行安全配置
- 所有代码执行默认使用容器隔离
- 容器镜像:`openclaw-sandbox`(自定义安全镜像)
- 网络限制:只允许访问白名单域名
- 文件系统:只允许读写 /workspace 目录
- 执行完毕:自动销毁容器,不保留状态
## 安全规则
- 不在主机上直接运行来源不明的脚本
- 所有 `exec` 操作默认用 `--container`
- 涉及文件系统的操作在容器内完成后再复制出来
5. 典型使用流程
用户:帮我分析一下这个Python脚本有没有安全问题
AI 分析:
正在 Docker 容器中安全执行...
✅ 分析完成
## 安全分析报告
脚本:`data-processor.py`
### 行为分析
| 操作 | 风险 | 说明 |
|------|------|------|
| 读取CSV文件 | ✅ 无风险 | 正常文件操作 |
| 数据处理 | ✅ 无风险 | 标准 pandas 操作 |
| 写入输出文件 | ⚠️ 注意 | 确认输出路径 |
| 网络请求 | ❌ 未发现 | 无外部通信 |
| 系统命令 | ❌ 未发现 | 无 shell 调用 |
### 结论
✅ 脚本基本安全,未发现恶意行为
### 容器运行记录
- 运行镜像:openclaw-sandbox
- 执行时间:3.2秒
- 文件系统访问:只读 /workspace
- 容器状态:已自动销毁(无残留)
不同场景的容器配置
场景1:Web 开发测试
# Node.js + npm 环境
openclaw run --container --image node:20-alpine \
"帮我创建一个Express API,处理用户注册"
# 带数据库测试
openclaw run --container \
--volume ./test-db:/var/lib/postgresql/data \
"测试这个用户注册API"
场景2:Python 数据分析
# 数据科学专用镜像
openclaw run --container --image jupyter/scipy-notebook \
"分析这个销售数据,生成图表"
# 带文件卷挂载
openclaw run --container \
--volume $(pwd)/data:/data \
--image python:3.11-slim \
"处理 data/ 目录下的所有CSV"
场景3:未知第三方脚本
# 最高安全级别:完全隔离,无网络
openclaw run --container \
--image alpine:latest \
--no-network \
"运行这个脚本,报告结果"
# 限制资源(CPU/内存)
openclaw run --container \
--memory 512m \
--cpus 0.5 \
"分析这个脚本"
清理与管理
# 查看当前运行的容器
docker ps -a
# 手动清理所有已停止的容器
docker container prune -f
# 清理所有镜像(谨慎)
docker image prune -a
# 查看 OpenClaw 容器日志
docker logs openclaw-sandbox-runner
预期结果
- 安全:未知代码在容器中运行,破坏不了主机
- 干净:容器销毁后零残留,不污染本机环境
- 可控:可以限制网络、CPU、内存使用
常见问题
Docker 需要 root 权限?
可以用 Podman 替代,不需要 root:
podman run --rm openclaw-sandbox python test.py
容器中没有需要的依赖?
在 Dockerfile 中预先安装,或者让 AI 自动安装:
openclaw run --container --image python:3.11-slim \
--install-deps "pip install pandas openpyxl"
文件怎么传入传出容器?
# 传入文件
docker cp ./input.csv container-id:/workspace/input.csv
# 传出结果
docker cp container-id:/workspace/output.csv ./output.csv
不满意怎么调
- 只要基础隔离 → 用默认镜像,不自定义
- 需要完整环境 → 预构建包含所有依赖的自定义镜像
- 完全禁止网络 → 加
--no-network参数
⚔️ 同类副本推荐 ⚔️
✅ 进阶
用 AI 替代虚拟助理(VA)
邮件回复、日程安排、信息整理、客户跟进——这些虚拟助理做的事,OpenClaw 能接管大部分,每月省下 VA 费用。
🔧 进阶
100+ 企业平台一键接入
安装 API Gateway 技能,一口气打通 Google Workspace、Microsoft 365、GitHub、Notion、Slack、HubSpot 等 100+ 平台,统一管理。
🔧 进阶
数据报表自动生成与定时分发
把你的数据源(Excel/飞书/数据库)接入 OpenClaw,每天/每周自动生成数据报表,并准时发送到对应的人或群,彻底告别"每天早上手动跑数据、发给领导"的重复劳动。"