最近,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 来模拟)。- git clone https://github.com/openclaw/openclaw
复制代码 笔者的环境直接克隆会受限,因此选择直接下载zip包上传并解压,并改名为 myclaw。
② 执行 docker-setup.sh
在目录下执行 docker-setup.sh 文件:
因为笔者环境安全等级要求和限制都比较高,所以执行实际遇到了不少问题,不确认是否大家可能也会遇到,如果遇到可以做个参考,如果没有就忽略这一部分的折腾,或者考虑直接拉取官方做好的docker镜像也OK:- # 注:这部分列出的问题你安装不一定会遇到,如果遇到可供参考:## 问题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 获取:- $ 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://docs.openclaw.ai/zh-CN/channels/feishu
这里笔者配置了下,总结关键的步骤,供参考:
首先打开飞书的网站:https://open.feishu.cn/app/
创建企业自建应用 小鲸鱼Claw:
记住这里的 App ID 和 App Secret ,直接复制保存,后面要用。
添加 机器人 的应用能力:
选择自己想要的权限,或者从官网文档上copy配置导入,最终确认保存:
然后直接发布初始版本 1.0.0:
确认发布:
可以看到 1.0.0 已发布成功:
发布成功之后,调整下 事件与回调 的订阅方式,使用推荐的 长连接:
这里保存遇到问题:
在OpenClaw中配置Channels,添加飞书的配置,注意这里的 appId 和 appSecret 是刚才让你复制好的:- { "channels": { "feishu": { "enabled": true, "domain": "feishu", "dmPolicy": "pairing", "mediaMaxMb": 30, "accounts": { "main": { "appId": "cli_a93*************", "appSecret": "ZaHgd7LGrOSrNXF8****************", "botName": "小鲸鱼Claw" } } }}
复制代码 如果遇到docker挂掉没起来,就手工启动下:- docker start alfred-agent
复制代码 此时就可以保存了,然后添加事件:
同时记得回调也修改为长连接,然后再次发布版本 1.0.1:
现在就可以在飞书上和 小鲸鱼Claw 聊天了,不过第一次对话会提示要求配对:
按提示去容器内执行这个openclaw的命令配对成功:
② 测试效果
配对成功后,再次对话,就可以正常对话了:
04 | 关键疑问:安全了,能力会打折扣吗?
很多朋友担心,关进 Docker 后的 OpenClaw 是不是成了“废人”?
① 长期记忆在哪里?
它的“长期记忆”(向量数据库)保存在你挂载的目录中。只要这个文件夹不删,它的学习成果就会一直保留。
② 它是如何体现 Skill 的?
Skill 会在 Docker 内部执行。唯一受限的是它不能直接打开你 Mac 上的 Chrome 浏览器等应用软件。
③ 如何访问本地文件
我们可以单独为能给 OpenClaw 访问/修改的文件建一个专门的目录,同样可以挂载进去,由我们自己来维护这个目录的文件范围,确保真正安全可控。
05 | 笔者总结:技术人的平衡之道
面对 OpenClaw 这种前沿技术,我们既要有探索的冲动,也要有工程的理性。
- 手工用户:如果你习惯于精准控制每一个脚本,Docker 是你最好的调试场。
- 博主与从业者:通过这种“隔离部署”方案,你可以大胆地进行各种破坏性评测,而不必担心重装系统。
笔者建议:
先跑通最基础的 Docker 部署,在 workspace 里放几个无关紧要的文件,试着让 OpenClaw 帮你总结一下。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |