# OpenClaw 怎么部署：本地源码安装和 Docker 部署怎么选

> Canonical: https://vxi.me/posts/openclaw-docker-vs-source-deployment/
> Locale: zh-cn
> Published: 2026-03-27
> Updated: 2026-03-27
> Markdown: https://vxi.me/posts/openclaw-docker-vs-source-deployment.md

如果你现在只是想把 OpenClaw 先跑起来，最容易卡住的地方通常不是安装命令本身，而是第一步就选错了路。

很多人第一次搜这个项目时，脑子里的问题其实都差不多：到底该装在自己电脑上，还是直接扔到云服务器？源码安装是不是更“正统”？Docker 会不会更简单？结果一圈资料看下来，选项越来越多，人反而更犹豫。

我把 OpenClaw 官方 README 和官方 Docker 文档重新过了一遍，最后的感觉很明确：这不是一个“哪条命令更帅”的问题，而是一个“你现在到底想使用它，还是想接管它”的问题。只要先把这件事想清楚，后面的路其实没那么绕。

## 先想清楚：你是想用它，还是想接管它

如果你只是普通用户，目标很简单，就是今天把 OpenClaw 装起来，先看看它到底适不适合自己，那我真的不建议你一上来就选源码安装。官方 README 现在给的新手入口，本来就是 Node 24，或者至少 Node 22.16+ 的环境里，直接先装 CLI：

```bash
npm install -g openclaw@latest
openclaw onboard --install-daemon
```

这条路的味道很明显，它更像“正常使用者入口”。你先把 CLI 装好，跑 onboarding，把网关和初始配置一步步走完，先让东西跑起来。它不是在逼你先理解整个项目怎么 build，也不是在让你先接手一套开发环境。

源码安装就完全不是这个气质了。官方给的那组命令是从仓库开始，`git clone`、`pnpm install`、`pnpm ui:build`、`pnpm build`，后面再继续跑 `pnpm openclaw onboard --install-daemon` 和 `pnpm gateway:watch`。你光看这个流程就知道，它更像是给准备深入折腾的人留的。你如果后面要看实现、改行为、跟仓库节奏、自己调试，那当然很合适；但如果你只是想先体验一下，这条路通常只会把开局变重。

很多人第一次选路时，容易有一个误会，觉得源码安装既然更“底层”，那肯定也更“完整”。但对普通人来说，这种完整很多时候只是多背了一层维护成本。Node 版本、依赖装没装好、UI 有没有 build 过、后面升级会不会卡住，这些事情都会提前落到你头上。你如果本来只是想确认 OpenClaw 好不好用，这个代价不太划算。

## Docker 不是自动更轻：本地和云端是两回事

Docker 也是一样，别一听容器化就觉得它自动更轻。OpenClaw 官方 Docker 文档开头其实说得很直白，Docker 是 optional。它更适合你想把 Gateway 放进一个隔离环境里，或者你本来就是准备把它跑在一台更像部署主机的机器上。反过来说，如果你已经坐在自己的电脑前，只是想尽快开始用，官方反而更偏向普通安装流。

这点我觉得特别重要，因为它直接把“本地电脑”和“云端服务器”分成了两类事情。在自己电脑上，Docker 很多时候不是最快路径。你还得先有 Docker Desktop 或 Docker Engine，要确认 Compose v2 没问题，还得留足够的资源给镜像构建。官方文档甚至专门提醒过，镜像构建至少建议 2 GB 内存，不然 `pnpm install` 可能就会因为内存不够被系统杀掉。你如果只是想先开箱体验，这套前置动作未必比 CLI 更省事。

但如果你是在云端，情况就会一下子变得不一样。你如果本来就准备把 Gateway 长期挂在一台 Linux 机器上，这时候 Docker 反而很顺手。不是因为它更高级，而是因为它更像一条正经部署路径。你把运行环境包起来，后面迁移、重建、删了重来，思路都会干净一些。它不代表没有维护成本，只是这些成本更符合“服务器在跑一个服务”这个场景。

而且 OpenClaw 官方 Docker 文档本身，也不是那种“一条 `docker run` 就完事”的写法。它给的主流程，是在仓库根目录里跑 `./scripts/docker/setup.sh`，让脚本去处理镜像、onboarding、`.env` 和 Docker Compose 启动。如果你不想自己本地构建，也可以先导出预构建镜像：

```bash
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.sh
```

这其实已经说明很多了。Docker 这条路不是为了把所有东西藏起来，而是为了把运行环境收进容器里。它更像“部署模式”，不太像“安装模式”。文档里还有个细节也挺说明问题，在这套流程里，`openclaw-cli` 更像容器起来之后继续操作的工具，而不是从零开始的安装器。有些 setup-time 的动作，官方就是让你通过 `openclaw-gateway` 去做的。

## 一句话总结：选路就是选维护成本

所以如果现在让我用一句很白的话总结，我大概会这么说。你如果只是想在自己电脑上先把 OpenClaw 跑起来，先用官方 CLI，别急着碰源码。你如果准备把它放在云端长期跑，那就认真看 Docker，因为那条路更像部署。至于源码安装，只有当你已经很确定自己后面会看代码、改实现、追版本、自己扛构建时，它才真有意义。

说到底，源码安装和 Docker 部署差的根本不是命令多两行少两行，而是你准备把后续维护成本放在哪。源码路径的好处是透明，项目结构和构建过程都在你眼前，离问题更近，也更方便改；代价是 Node、依赖、UI 构建、开发脚本这些事情都会变成你的日常。Docker 路径则是把运行时包起来，对云端特别友好，但你还是得管持久化、端口、健康检查、镜像更新和访问面。官方文档里会提到 `healthz`、`readyz`、`lan`、`loopback`，甚至还会提醒公开主机上的 Docker 防火墙策略，这些都在说明一件事：这条路服务的是部署者，不是第一次装软件的人。

## 四个最常见的坑

普通人最容易踩的坑，其实也无非就这几种。第一种是把源码安装当成默认安装，结果刚开始就被依赖和 build 绕晕。第二种是把 Docker 想得过于轻松，尤其是在本地电脑上，最后发现容器环境本身反而成了门槛。第三种是低估运行时要求，比如 Node 版本这种看起来不起眼的东西，一旦不对，后面很多问题都只是连锁反应。还有一种特别常见，就是服务器上终于跑起来了，就觉得事情结束了，结果后面迁移或重建时才发现，真正麻烦的根本不是容器，而是数据和配置。

如果你真打算把 OpenClaw 长期放在服务器上，这时候顺手把备份和恢复路线一起想一下，会比后面补救轻松很多。像我前面写过的 [Docker 数据卷自动备份到 GitHub：适合 1Panel 的低成本容灾方案](/posts/docker-volume-backup-github-sync/)，其实就是这种思路。别一开始就想做得多大，先保证出问题时还有一条能回来的路。

我自己看完 OpenClaw 这套文档后，最直观的感受其实就一句话：它给的不是一条安装路，而是几条面向不同人的路。你只要别把“我要先用它”和“我要自己接管它”混在一起，整个部署问题就会简单很多。

如果你平时也在整理自己的部署路线，可以顺手看一下这个站里的 [部署主题页](/topics/deployment/)。我后面还会继续把这类“本地怎么装、云端怎么放、什么时候该容器化”的实战文章慢慢补起来。
