OpenClaw 完整安装教程:先跑通宿主机,再把 Agent 工具执行关进 Docker Sandbox
这篇文章属于 OpenClaw 的宿主机 + Docker Sandbox 实战篇
如果你想要一条真正适合录视频、适合新手照着做、而且不会反复回到向导的安装主线,这篇就是我最终定下来的版本。
本文按 2026 年 4 月 5 日可查到的 OpenClaw 官方 Install、QuickStart、Telegram、Pairing、Sandboxing 与 Dashboard 文档整理,并结合实际安装、重装、排错过程,把最终最顺的一条流程固定下来。
先说结论:这次只走一条主线,不再分叉
如果你第一次安装 OpenClaw,或者你正在准备录一条真正能一镜到底的教程,最重要的不是多懂几个命令,而是流程顺序不能乱。
我最后定下来的路线只有这一条:
- 先确认
Docker正常 - 用官方安装脚本安装
OpenClaw - 顺着安装脚本进入的
onboarding一路走到底 - 在
onboarding里直接把Telegram (Bot API)配好 - 向导结束后,不再回到
onboarding - 用单独命令验证
Gateway、完成Telegram pairing - 最后再单独开启
Docker sandbox
这条路线的好处很直接:
- 不会出现“刚输过一次 API Key,后面又重新输一遍”
- 不会出现“安装脚本已经进入向导,结果又手动运行一次
openclaw onboard” - 不会把“安装 OpenClaw”和“构建 sandbox 镜像”混成一件事
如果你只记住一句话,那就是:
安装脚本已经进入 onboarding 之后,就不要再手动重跑 openclaw onboard。
一、先确认 Docker 已经正常工作
OpenClaw 最后的安全目标,不是把整个程序都塞进 Docker,而是让 Agent 的工具执行进入 Docker sandbox。所以第一步不是急着装 OpenClaw,而是先确认 Docker 没问题。
在终端执行:
1 | docker --version |
如果 hello-world 能正常输出欢迎信息,就说明 Docker 已经可以工作了。
这一步别嫌它简单。因为后面构建 sandbox 镜像时,只要 Docker 代理、网络分流或者镜像拉取有问题,几乎都会在这里提前暴露出来。先把这一步跑通,后面才不会边装边排错。
二、用官方安装脚本安装 OpenClaw
接下来直接用官方当前推荐的安装命令:
1 | curl -fsSL https://openclaw.ai/install.sh | bash |
三、顺着 onboarding 一次走完
进入向导之后,你只需要抓住几个关键选择。
1. 继续安装
看到类似 Continue? 这样的提示时,直接选:
Yes
这一步其实是在确认:你知道当前这套默认值更偏向个人使用,如果以后拿去做多人共享或者公共入口,需要再额外加固。
但对于本地个人安装来说,直接继续就好。
2. Setup mode
这里选:
QuickStart
因为这篇文章的目标不是把每一个隐藏配置都翻出来给你看,而是给你一条最顺的主线。QuickStart 的设计目标本来就是“尽快跑通”,所以你不一定会看到每个参数都单独弹成一页。
这点你一定要提前有心理预期:
QuickStart 不保证把 gateway.mode、gateway.port、gateway.bind 这些值逐项展示出来。
如果某些页面没出现,不是你漏了,也不是系统有问题,而是它帮你自动套用了推荐配置。
3. Model/auth provider
模型提供商这里,只选你这期要演示的唯一一家。
如果你这次教程决定录 DeepSeek,那就全程只用 DeepSeek。不要在一篇文章或者一条视频里,一会儿选 Anthropic,一会儿又切回 DeepSeek。流程统一,读者才不会被你带乱。
选好之后,输入 API Key。
4. 频道选择
如果你本期准备把 Telegram 一起录进去,这里最好的做法,就是直接在 onboarding 里选 Telegram (Bot API)。
然后把你的 Telegram Bot Token 填进去。
我后来反复比较过两种录法:
- 一种是在 onboarding 里直接加 Telegram
- 一种是安装结束后,再额外跑一段
openclaw channels add --channel telegram --token ...
最后我还是建议你用前者。原因很简单:
对于新手来说,“安装时一次配好模型、Gateway 和 Telegram”会显得更完整,也更符合直觉。你的视频和文章主线也会更顺。
四、向导结束后,不再回到 onboarding
这一步是整篇教程最重要的分界线。
只要 onboarding 结束,就视为安装阶段已经结束。
从现在开始:
- 不要再运行
openclaw onboard - 不要再回头修改向导
- 后面的所有事情,都用单独命令完成
你以后真正会反复用到的,是这些命令:
1 | openclaw gateway status |
把这条边界讲清楚,文章和视频都会显得专业很多。因为读者会明确知道:
- 前面是安装和初始化
- 后面是验证和使用
这两件事不是一回事。
五、先验证 Gateway,再打开后台
向导结束之后,先在终端执行:
1 | openclaw gateway status |
第一条命令是确认 Gateway 服务已经正常运行。
第二条命令会输出一个本地 Dashboard 地址,你把它复制到浏览器打开即可。
如果你打开的是本机地址,比如 127.0.0.1:18789,那就说明当前后台是以本地方式在运行,而不是随便暴露到局域网。
这里有一个你在视频里完全可以顺手讲出来的重点:
这次的结构不是把 OpenClaw 整套塞进 Docker,而是先让 Gateway 在宿主机上稳定跑起来。
后面我们做的 Docker sandbox,是给 Agent 的工具执行加一层隔离,不是把管理界面也丢进容器。
六、完成 Telegram pairing
在 onboarding 里把 Bot Token 填好,并不代表 Telegram 已经彻底能聊了。你还差最后一步:让你的 Telegram 账号和这个机器人完成配对。
先去手机上的 Telegram,给你的机器人发一条最简单的话:
1 | hi |
第一次发消息时,系统通常会返回一个 8 位配对码。
这时候回到终端,先查看当前待配对请求:
1 | openclaw pairing list telegram |
确认列表里存在你刚收到的那一串配对码之后,再执行批准:
1 | openclaw pairing approve telegram 你的8位配对码 --notify |
注意这里有一个特别容易踩的细节:--notify 前面一定要有空格。
正确写法是:
1 | openclaw pairing approve telegram HCFDAFJ6 --notify |
而不是把配对码和 --notify 黏在一起。
批准成功后,再回 Telegram 发送:
1 | /new |
之所以建议你补一条 /new,是因为这样更适合演示。它能帮你明确开始一个新的干净会话,后面的聊天记录也会更清晰。
七、拉官方仓库,但只是为了构建 sandbox 镜像
到了这里,OpenClaw 本体其实已经装好了。接下来拉官方仓库,不是为了“重新安装 OpenClaw”,而只是为了使用官方自带的 sandbox 构建脚本。
这一点如果你不提前说明,很多读者都会误会:
刚刚不是已经装完了吗,为什么又在 clone 一遍?
实际情况是这样的:
- 安装脚本已经把宿主机上的 OpenClaw 本体装好了
- 你现在 clone 仓库,只是为了执行里面的
scripts/sandbox-setup.sh
所以这一步直接执行:
1 | mkdir -p ~/openclaw-src |
这一步的结果,是构建出官方默认的 Docker sandbox 镜像:
1 | openclaw-sandbox:bookworm-slim |
八、开启 Docker sandbox
现在才进入这篇文章真正的安全核心。
依次执行下面这些命令:
1 | openclaw config set agents.defaults.sandbox.mode all |
这一组命令的含义其实很清楚:
mode = all
代表所有会话都走 sandboxbackend = docker
代表沙箱后端使用 Dockerscope = agent
代表每个 agent 使用独立隔离workspaceAccess = none
代表默认不给真实工作区权限docker.image
指定官方 sandbox 镜像
这几行命令共同实现的目标,就是把 OpenClaw 分成两层:
Gateway跑在宿主机Agent的工具执行进 Docker sandbox
如果你是从安全角度来理解 OpenClaw,这就是整篇文章最核心的结论。
九、怎么确认 sandbox 已经真的生效
配置完之后,不要靠猜,直接看结果。
继续执行:
1 | openclaw sandbox explain |
你应该至少在输出里看到这几行:
runtime: sandboxedmode: allbackend: dockerworkspaceAccess: none
只要这些信息都出现了,就说明当前的目标已经达成:
Gateway 跑在宿主机,而 Agent 工具执行已经进入 Docker sandbox。
有些人看到 openclaw sandbox list 为空,会误以为是不是配置失败了。其实不一定。
很多时候它只是说明当前没有活跃的 sandbox runtime,或者当前实例已经结束。真正决定是否配置成功的,是 sandbox explain 里的 runtime: sandboxed。
十、如果以后要处理真实文件,更稳妥的方式是什么
这部分是很多人装完以后才会真正关心的:
我以后要让 AI 动我的代码、草稿、文档,那到底怎么做更稳?
我自己的建议是,先不要一上来就开放真实工作区,而是采用一种更保守的工作流:
- 把目标文件手动复制进工作区
- 让 AI 在隔离环境里处理
- 你人工检查结果
- 再把结果复制回正式目录
这种“手动搬运”的方式,虽然没有那么自动化,但在安全上非常有价值。因为最终决定权始终还在你手里,人工确认就是最后一道防线。
换句话说,这篇文章里把 workspaceAccess 设成 none,不是为了把功能关死,而是为了先把边界立住。后面你真的需要放宽权限,再按自己的使用场景逐步调整。
十一、这条路线最容易踩的坑
最后再把这篇教程里最容易踩的坑,集中说一遍。
1. 安装脚本已经进入向导后,又手动运行 openclaw onboard
这是最常见、也最影响观感的错误。
如果安装脚本已经进入 onboarding,就不要再手动运行第二次 openclaw onboard。
2. 以为 QuickStart 没弹出某个配置页,就是自己漏了
QuickStart 本来就不保证把每个参数逐项展示。
某些值直接套默认,是正常现象。
3. 把 clone 官方仓库理解成“重新安装 OpenClaw”
这里 clone 仓库,只是为了拿 sandbox 脚本。
OpenClaw 本体在安装脚本那一步就已经装好了。
4. Telegram Bot Token 加好了,就以为已经能直接聊天
你还需要完成 pairing。
所以 Telegram 这条线真正完整的顺序是:填 Token、私聊机器人、拿到 8 位码、批准 pairing、再 /new。
5. sandbox list 为空,就误判成配置失败
真正应该看的,是:
1 | openclaw sandbox explain |
只要这里显示 runtime: sandboxed,就说明 sandbox 已经生效。
结语
如果你想要一条真正适合写成博客、也适合录成视频,而且不容易把自己绕进去的 OpenClaw 安装路线,那么这篇文章给出的顺序就是我最后留下来的版本:
先确认 Docker 正常;
再用安装脚本安装 OpenClaw,并顺着 onboarding 一次走到底;
Telegram 直接在 onboarding 里接入;
向导结束后,不再返回向导;
最后再单独构建并开启 Docker sandbox。
这样做的最大价值,不只是“能装上”,而是你会非常清楚:
- 哪一部分是宿主机
- 哪一部分是沙箱
- 哪一部分是真正的安全边界
如果你只想把 OpenClaw 跑起来,有很多更随意的做法。
但如果你既想把它装好,又想把逻辑讲清楚,这条顺序会比你想象中更重要。