最近,AI圈被一只"红龙虾"------ OpenClaw 刷屏了。作为一款具备系统级高权限执行能力的 AI Agent,它能读写文件、操作浏览器、执行脚本。虽然强大,但不少同行都在担心:给一个 AI 这么高的权限,万一它"幻觉"发作或者被恶意指令诱导,把我的电脑格式化了怎么办?
工信部等机构也发出了安全预警。面对这把"没有保险栓的利剑",笔者认为:最好的办法不是敬而远之,而是把它关进 Docker 的"笼子"里,在安全受控的环境下发挥它的最大价值。
今天,笔者就带大家手把手实操:如何利用 Docker 部署 OpenClaw,并让它安全地与国内的飞书进行通信。
01 | 为什么要坚持在 Docker 里"养龙虾"?
直接在宿主机(如你的 Mac 或 Windows)安装 OpenClaw,相当于给了一个陌生管家你家所有房间的钥匙。因此只要安全等级高些的场景都不会允许你在宿主机安装。
① 物理隔离
在 Docker 中,OpenClaw 运行在独立的 Linux 环境。它看不见你的系统文件(如 SSH Key、数据库密码),即便它尝试执行破坏性指令,也只能影响容器内部。
② 权限锁死
你可以精确定义它能看到的目录。比如只挂载一个 ~/myclaw/workspace 文件夹,它就只能在这个"沙盒"里折腾,你的个人隐私纹丝不动。
③ 环境统一
不需要担心环境冲突或依赖报错,一键镜像启动,对小白极其友好。
02 | 快速上手:构建你的安全沙箱
建议在你的常用电脑(笔者这里使用的是 MacBook Air M3)上直接操作,无需准备第二台电脑。
① 准备工作
确保你已经安装了 Docker(推荐 Docker Desktop,但如果环境受限,可以加一层 colima 来模拟)。
bash
git clone https://github.com/openclaw/openclaw
笔者的环境直接克隆会受限,因此选择直接下载zip包上传并解压,并改名为 myclaw。
② 执行 docker-setup.sh
在目录下执行 docker-setup.sh 文件:
因为笔者环境安全等级要求和限制都比较高,所以执行实际遇到了不少问题,不确认是否大家可能也会遇到,如果遇到可以做个参考,如果没有就忽略这一部分的折腾,或者考虑直接拉取官方做好的docker镜像也OK:
bash
# 注:这部分列出的问题你安装不一定会遇到,如果遇到可供参考:
#
# 问题1.让Docker使用本地自带的默认引擎构建
# 目的是不再去网上找那个解析器,也就不会报证书错误。
# vi Dockerfile
# 删除第一行:
# syntax=docker/dockerfile:1.7
# 问题2.将原来的 Corepack 相关行替换为 npm 安装
# 因为笔者环境corepack报错了,因此修改第 44 行左右
# RUN corepack enable
# 改成使用 npm 直接安装 pnpm,并强制使用国内镜像源(防止 SSL 报错和 403)
RUN npm config set registry https://registry.npmmirror.com && \
npm install -g pnpm@10.23.0
# 问题3.colima资源问题,改成8G内存避免OOM
# 如果你不需要colima可以忽略
# 重新启动,并显式指定使用 vz 虚拟化和 virtiofs 挂载(M 系列芯片最稳组合)
colima start --cpu 4 --memory 8 --vm-type=vz --mount-type=virtiofs
# 问题4.配置docker compose up -d 报错不断重启
# 启动docker测试,暂时先不用docker-compose.yml
# 如果名称已存在,但不符合预期,可以删除
# docker rm -f alfred-agent 2>/dev/null
# 这种模式下,容器直接共用虚拟机的网络,不需要 -p 端口转发
# 注意我这里特意加了 --allow-unconfigured 参数
docker run -d \
--name alfred-agent \
--network host \
-v $(pwd)/data:/home/node/.openclaw \
openclaw:local \
openclaw gateway --port 3000 --allow-unconfigured
# 后续启动可以直接:
docker start alfred-agent
当 docker-setup.sh 执行成功,会做好一个本地的镜像 openclaw:local。
当 docker 启动成功,会按照笔者的规划,启动一个 alfred-agent 的容器并持续运行。
此时,就可以通过本机自定义的 3000 端口访问到它:

上图中的令牌,可在你环境中的 openclaw.json 获取:
BASH
$ cat ./data/openclaw.json | grep token
"mode": "token",
"token": "213cef13d55f0ee82d2547c12***********************"
此时软件的健康状态虽然显示正常,但直接聊天会发现报错:

这是因为我们还没有配置API key,所以此时聊天必然会报错,这里可以看到默认是用的 anthropic/claude-opus-4-6 模型。
笔者这里测试就改成国内的模型,只为测试下可用性:
毕竟这个 OpenClaw 是比较费 token 的,测试阶段暂时就不接入昂贵的模型了,想起之前 siliconflow 还有余额没用完,嗯,那就先用它吧。
配置这个说实话有点儿折磨... 前端界面可以说是很不友好,最后我直接让AI帮我生成json格式的,根据实际情况修改下,测试才可用:

可以看到可以正常问答了,如果英文不习惯的话,可以要求它以后都要讲中文:

问他能做哪些事情?

因为技能最近比较火,顺便看了眼skill,发现内置了很多技能,不过当前环境下大多是不能用的:

03 | 进阶实战:让 Agent 接入飞书
很多读者希望 AI 能够通过IM类软件,比如飞书给自己汇报工作,或者通过对话下达任务。在 Docker 的隔离环境下,我们也可以实现。
① 接入飞书
OpenClaw默认装完,发现channel只有国外的,但现在官方已经有文档如何配置飞书,而且还有中文的,如下:
这里笔者配置了下,总结关键的步骤,供参考:
首先打开飞书的网站:https://open.feishu.cn/app/
创建企业自建应用 小鲸鱼Claw:

记住这里的 App ID 和 App Secret ,直接复制保存,后面要用。

添加 机器人 的应用能力:

选择自己想要的权限,或者从官网文档上copy配置导入,最终确认保存:

然后直接发布初始版本 1.0.0:

确认发布:

可以看到 1.0.0 已发布成功:

发布成功之后,调整下 事件与回调 的订阅方式,使用推荐的 长连接:

这里保存遇到问题:

在OpenClaw中配置Channels,添加飞书的配置,注意这里的 appId 和 appSecret 是刚才让你复制好的:
JSON
{
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"dmPolicy": "pairing",
"mediaMaxMb": 30,
"accounts": {
"main": {
"appId": "cli_a93*************",
"appSecret": "ZaHgd7LGrOSrNXF8****************",
"botName": "小鲸鱼Claw"
}
}
}
}
如果遇到docker挂掉没起来,就手工启动下:
BASH
docker start alfred-agent
此时就可以保存了,然后添加事件:

同时记得回调也修改为长连接,然后再次发布版本 1.0.1:

现在就可以在飞书上和 小鲸鱼Claw 聊天了,不过第一次对话会提示要求配对:

按提示去容器内执行这个openclaw的命令配对成功:

② 测试效果
配对成功后,再次对话,就可以正常对话了:

04 | 关键疑问:安全了,能力会打折扣吗?
很多朋友担心,关进 Docker 后的 OpenClaw 是不是成了"废人"?
① 长期记忆在哪里?
它的"长期记忆"(向量数据库)保存在你挂载的目录中。只要这个文件夹不删,它的学习成果就会一直保留。
② 它是如何体现 Skill 的?
Skill 会在 Docker 内部执行。唯一受限的是它不能直接打开你 Mac 上的 Chrome 浏览器等应用软件。
③ 如何访问本地文件
我们可以单独为能给 OpenClaw 访问/修改的文件建一个专门的目录,同样可以挂载进去,由我们自己来维护这个目录的文件范围,确保真正安全可控。
05 | 笔者总结:技术人的平衡之道
面对 OpenClaw 这种前沿技术,我们既要有探索的冲动 ,也要有工程的理性。
- 手工用户:如果你习惯于精准控制每一个脚本,Docker 是你最好的调试场。
- 博主与从业者:通过这种"隔离部署"方案,你可以大胆地进行各种破坏性评测,而不必担心重装系统。
笔者建议:
先跑通最基础的 Docker 部署,在 workspace 里放几个无关紧要的文件,试着让 OpenClaw 帮你总结一下。