EP03 - 试图驯服一只猛兽:OpenClaw 的 Docker 监狱
EP03 - 试图驯服一只猛兽:OpenClaw 的 Docker 监狱 昨天我在测试 OpenClaw 的 “File System Tool” 时,发生了一件让我冷汗直流的事。 我给它的指令是:“清理一下当前目录的临时文件”。 可能是因为我的 Prompt 写得太随意,它直接把我的整个 ~/Downloads 文件夹给清空了。 幸好那里只有一堆没用的安装包。但如果它删的是我的 ~/Documents 或者 .ssh 密钥呢? 这就是我们在 link:/posts/ai/why-i-choose-openclaw/[] 里提到的代价:强大的能力伴随着巨大的风险。 一个拥有 Shell 权限的 AI Agent,本质上就是一个盯着你键盘随时准备按下回车键的超级用户。在裸机 (Bare Metal) 上直接运行它,无异于把自家大门的钥匙交给一个喝醉了的锁匠。 今天,我们要给这个不仅聪明而且危险的家伙,造一座牢不可破的监狱。 这也是极客生存法则第一条:永远不要信任你的 Agent。 本文涉及本地Native安装的一些知识,你可以阅读上一篇 EP02 来了解它们。 为什么一定要用 Docker? 很多人觉得 Docker 只是为了方便部署。 错。对于 Agent 开发来说,Docker 是保命符。 文件隔离 (Filesystem Isolation): 把它关在 /app 里。它想 rm -rf /?请便,删的只是容器里的文件,我的 Mac 毫发无损。 网络白名单 (Network Whitelist): 我们可以限制它只能访问特定的 API,防止它把我的本地数据传给不知名的服务器。 环境一致性: 你不用担心 Node.js 版本不对,或者缺了什么 Python 库。 手把手构建 “The Cage” 我们不需要什么花哨的 k8s,一个简单的 Dockerfile 和 docker-compose.yml 就够了。 但这里有几个针对 Mac 用户和 Ollama 的关键坑,我都替你踩平了。 ...