Install 导读

Docker 安装:先判断你是否真的需要容器化

Docker 是可选的,只有当你想要隔离的网关环境或在无本地安装的主机上运行时才需要。最易踩的坑是内存不足:构建镜像至少需要 2 GB RAM,否则 pnpm install 会被 OOM 杀掉(退出码 137)。如果你只是本地快速开发,用普通安装流程更快。

先讲这一页到底在解决什么

Docker 安装:先判断你是否真的需要容器化

Docker 是可选的,只有当你想要隔离的网关环境或在无本地安装的主机上运行时才需要。最易踩的坑是内存不足:构建镜像至少需要 2 GB RAM,否则 pnpm install 会被 OOM 杀掉(退出码 137)。如果你只是本地快速开发,用普通安装流程更快。

原文共 18 节,先看 Start Here 路径:/install/docker 查看官方原文

第一站

📦 先别动命令,先决定你要不要这个大箱子

Docker 最容易让新手卡住的地方,不是命令难,而是根本没先想清楚自己为啥要用它。

适合用 Docker

你想要一个相对独立、随时能重建的运行环境,或者你是在服务器上跑,不想本地一堆安装到处散。

🚫

不一定要用 Docker

你只是自己电脑上开发,想要最快的改了就试,不想多一层容器折腾,那普通安装往往更轻快。

🧱

最容易搞混的点

官方特别提醒:Agent 沙箱也会用 Docker,但这不等于你必须把整个 Gateway 都塞进 Docker 里。

先记一句

Docker 是“装箱方案”,不是 OpenClaw 的入场门票。

第二站

🚀 官方推荐的快路子,其实就是“一键搭箱子、顺手把灯也点亮”

整页最值得先看的命令其实只有一条。因为那条脚本会把很多零碎动作一次做完。

./scripts/docker/setup.sh

像按下“帮我把大箱子搭起来”的总按钮。它会去建镜像、跑 onboarding、生成网关 token、再把容器启动起来。

🧪 为什么这条最适合第一次

因为你不用手动一步一步喊每个容器干活。官方已经把最容易漏掉的前置动作都串好了。

📦 如果你想直接用现成镜像

export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" 就像先告诉脚本:“别现场造箱子了,去仓库拿一个现成的大箱子回来。”

🎈 这一段的核心

第一次跑 Docker 版 OpenClaw,最稳的做法不是自己拆步骤,而是先用 setup 脚本把整条流水线跑通。

第三站

🪄 setup 脚本到底偷偷帮你做了什么

脚本看起来短,但它背后做的事情不少。翻成人话,其实就三件。

🔑 问你要钥匙

它会问 provider 的 API key。这像在装机器之前,先把会用到的门卡收齐。

🧷 帮你写网关 token

它会生成 gateway token 写进 .env。这就像顺手给控制台配了一把开门钥匙。

▶️ 把网关真的启动起来

不是只把文件准备好,而是最后真把 Docker Compose 跑起来,让 OpenClaw 开始上班。

📌 为什么官方提醒 openclaw-cli 不是前期主角

因为在容器刚要出生、还没真正起来之前,很多 onboarding 和初始配置要直接让 openclaw-gateway 自己干,不是让旁边的 CLI 小助手干。

第四站

🖥 控制台打开那一步,可以理解成“拿着门票走进总控室”

容器起来以后,你接下来最常做的动作就是进控制台和加通道。

docker compose run --rm openclaw-cli dashboard --no-open

像让容器里的小助手把控制台地址再念一遍给你听。它不会帮你自动开浏览器,但会把门牌号告诉你。

http://127.0.0.1:18789/

这就是默认总控室门口。进去后把 token 贴进去,才算拿着门票进门。

docker compose run --rm openclaw-cli channels add --channel telegram --token \"...\"

像让容器里的管理员去帮你登记一个新通道。你报出是哪扇门、它的钥匙是什么,它就把这扇门接进总控室。

docker compose run --rm openclaw-cli channels login

像处理需要扫码登录的通道,比如 WhatsApp。不是所有通道都靠 token,有些真要你现场扫一下。

第五站

🧱 手动 flow 看起来长,其实是在“自己一块一块搭箱子”

如果你不用 setup 脚本,官方也给了手动步骤。它的本质不是神秘,而是把脚本里的动作全摊开给你看。

docker build -t openclaw:local -f Dockerfile .

像先在本地造一个专属于你的 OpenClaw 大箱子。

... dist/index.js onboard --mode local --no-install-daemon

像在箱子还没正式开门前,先进去做第一次布置:铺床、摆桌子、放钥匙。

config set gateway.mode local / gateway.bind lan

前者像告诉总控室“你现在是在本地模式工作”,后者像把门从“只给自己看”改成“主机能从外面敲到”。

docker compose up -d openclaw-gateway

前面都准备好后,这一步才是真正把机器推上岗。

第六站

🩺 健康检查几条命令,翻成人话就是“它还活着吗?准备好了吗?”

Docker 页里这部分很实用,因为容器世界里最怕“看起来像在跑,其实已经蔫了”。

curl -fsS http://127.0.0.1:18789/healthz

像敲敲门问一句:“你人还在吗?”只看活没活。

curl -fsS http://127.0.0.1:18789/readyz

像再问一句:“你不光醒着,是不是已经准备好开始接活了?”

docker compose exec openclaw-gateway node dist/index.js health --token \"$OPENCLAW_GATEWAY_TOKEN\"

像拿着管理员门卡进去做一次更深的体检,不只是看它有没有呼吸,而是看里面状况怎么样。

❤️ HEALTHCHECK 是什么

Docker 自己也会定时去摸它的脉。如果一直不对劲,Docker 会把这个容器标成 unhealthy,等于贴了一张“这台机器不太对”的标签。

第七站

💾 持久化这段别跳过,它讲的是“哪些东西重启后不能丢”

容器最容易骗到人的地方,是它看起来像一台完整机器,实际上很多地方都很会“失忆”。

🏠 /home/node/.openclaw

这像 OpenClaw 的家。配置、token、认证资料、聊天状态,很多重要东西都住这里,所以官方把它挂到宿主机上,避免换箱子就失忆。

🧰 镜像里的东西

Node 运行时、系统包、你 bake 进去的外部工具,像焊死在箱子壁上的部件。要改这些,就得重建镜像。

🪵 容易长胖的地方

media/、session 日志、cron 记录、滚动日志这些目录会慢慢堆东西。官方特地点它们,是怕你哪天发现磁盘被吃空了。

🎈 这节一句话

容器可以随时换,但家不能丢。

第八站

⚠️ Troubleshooting 那几块,翻成人话都在讲“哪里最容易翻车”

官方后面列了很多折叠块,看着多,其实都是几类常见事故。

🧠 内存不够

如果构建时冒出 exit 137,多半不是你命令写错了,而是这台机器太瘦,装箱装到一半累趴了。

🔐 权限不对

容器里默认是 uid 1000 的 node 用户在干活。如果宿主机目录不让它写,它就像搬家工人到了门口却没有钥匙。

🪪 控制台 pairing

如果 Control UI 说需要 pairing,官方给的命令其实就是去看设备等待区,再把那个浏览器设备批准掉。

🎈 最后收住

Docker 版 OpenClaw 的主线很简单:决定要不要装箱,搭箱子,点亮控制台,把重要家当挂到箱子外面,出事就按“内存、权限、健康检查”这三条先查。