
从0到AI,每天为你拆解 AI 工具的实战用法与部署技巧。全文约 3200 字,建议收藏慢读。
“用 Docker 部署,环境干净、迁移方便,重装系统也不怕丢数据。” “一个命令启动,一个命令停止,完全不用担心搞乱本机环境。”
为什么选 Docker 部署?
在这个系列里我们聊过很多 OpenClaw 的玩法:树莓派部署、VPS 部署、连接 Telegram/WhatsApp……每种方式都有它的场景。
但有一种需求越来越常见:我想在自己电脑上跑 OpenClaw,但不想让它污染本机环境。
装了 Node.js、配了各种依赖,哪天想卸载的时候发现根本不知道删什么——这种感觉很糟。
Docker 解决的就是这个问题。所有依赖都在容器里,主机干干净净。想删就删,想迁就迁,配置文件单独挂载出来,重建容器数据还在。
OpenClaw 的 Docker 支持做得很完整,官方提供了一键脚本,整个流程可以控制在 5 分钟内。
开始之前,你需要什么?
Docker Desktop(macOS/Windows)或 Docker Engine + Compose v2(Linux) 至少 2GB RAM:镜像构建需要跑 pnpm install,内存太小容易 OOM(报 exit 137)一个 AI 模型的 API Key:OpenAI、Anthropic、Google 等都支持 基本的命令行使用经验
内存这条要注意,我见过不少人在 1GB 的小 VPS 上构建失败,换成 2GB 就好了。
三步完成部署
第一步:克隆仓库
ounter(lineounter(linegit clone https://github.com/openclaw/openclaw.gitcd openclaw
项目不大,克隆很快。
第二步:一键启动
ounter(line./docker-setup.sh
这一个命令做了很多事:
本地构建 Docker 镜像(大约 2-5 分钟,取决于网速) 自动运行引导向导,引导你填 API Key、选模型 启动网关(Gateway) 生成一个 Token,写入 .env文件
如果你不想等本地构建,可以直接用官方预构建镜像:
ounter(lineounter(lineexport OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"./docker-setup.sh
跳过构建,直接拉镜像,快得多。
第三步:打开控制台
浏览器访问 http://127.0.0.1:18789/,把生成的 Token 粘进去(Settings → token),就能看到控制台了。
忘了 Token?运行:
ounter(linedocker compose run --rm openclaw-cli dashboard --no-open
接入聊天软件(可选但推荐)
OpenClaw 一个很大的价值就是能直接在你常用的聊天软件里和 AI 对话。Docker 部署同样支持,配置也很简单。
接入 Telegram:
ounter(linedocker compose run --rm openclaw-cli channels add --channel telegram --token "你的Bot Token"
接入 Discord:
ounter(linedocker compose run --rm openclaw-cli channels add --channel discord --token "你的Bot Token"
接入 WhatsApp(扫码):
ounter(linedocker compose run --rm openclaw-cli channels login
配置完重启网关:
ounter(linedocker compose restart openclaw-gateway
数据持久化:这是最重要的一步
很多人第一次用 Docker 都会踩这个坑:重建容器之后数据没了。
OpenClaw 的 Docker Compose 默认已经帮你处理了这个问题——配置和工作区会挂载到主机的这两个路径:
~/.openclaw/— 配置文件、Agent 设置、Session 数据~/.openclaw/workspace— 工作区文件
只要这两个目录在,容器删了重建,数据还在。
如果你还想把整个 /home/node 持久化(比如 Playwright 浏览器缓存),可以用命名卷:
ounter(lineounter(lineexport OPENCLAW_HOME_VOLUME="openclaw_home"./docker-setup.sh
挂载额外目录
有时候你希望 AI 能访问主机上的某个目录,比如你的代码库或者 dotfiles:
ounter(lineounter(lineexport OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"./docker-setup.sh
格式是 主机路径:容器路径:权限,多个用逗号分隔,没有空格。
:ro 是只读,:rw 是读写。
常用日常操作
部署完之后,这几个命令用得最多:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 启动网关docker compose up -d openclaw-gateway# 停止docker compose down# 查看日志docker compose logs -f openclaw-gateway# 健康检查curl -fsS http://127.0.0.1:18789/healthz
健康检查这个命令很实用,返回 200 就说明网关正常运行,适合写进监控脚本。
Agent 沙箱:让 AI 工具运行更安全
这是 Docker 部署的一个隐藏福利。
OpenClaw 支持给 AI Agent 开启工具执行沙箱——AI 执行 exec、read、write 等操作时,不是直接跑在网关进程里,而是在一个独立的 Docker 容器内隔离执行。
网关还在主机上,但工具执行被隔离了。
开启方式很简单:
ounter(lineounter(lineexport OPENCLAW_SANDBOX=1./docker-setup.sh
开启后,默认沙箱配置是:
每个 Agent 独立一个容器 网络默认关闭(不能对外访问) 文件系统只读(代码跑完就销毁) 24小时空闲自动回收,7天老化自动清理
如果你有多个 Agent,可以给它们配不同的沙箱权限——个人 Agent 完全开放,公开 Agent 只读文件系统,工作 Agent 禁用 Shell。
这种灵活性在 Dify、Coze 这类平台上是很难实现的。
遇到问题怎么办?
构建时 OOM(exit 137)换大一点的机器,或者改用预构建镜像(OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest)。
权限报错(EACCES)镜像以 node 用户(uid 1000)运行,如果挂载目录的所有者不是 1000,会报权限错误。修复:
ounter(linesudo chown -R 1000:1000 ~/.openclaw
每次启动容器 Playwright 浏览器都没了浏览器文件在容器里,不持久化。解决:设置 OPENCLAW_HOME_VOLUME 把 /home/node 持久化到命名卷。
CLI 命令找不到网关
ounter(lineounter(linedocker compose run --rm openclaw-cli config set gateway.mode localdocker compose run --rm openclaw-cli config set gateway.bind lan
和直接安装相比,Docker 适合谁?
Docker 部署不是”最简单”的方式,但它是最干净、最可控的方式。
迁移机器的时候,tar 一下 ~/.openclaw/,在新机器解压,重新跑 docker-setup.sh,5 分钟恢复完毕。
写在最后
这篇文章聊的是 OpenClaw 的 Docker 部署。核心逻辑其实就三点:
./docker-setup.sh一键搞定:构建、引导、启动全在一个脚本里数据挂载出来,容器只是执行环境:配置和工作区在主机,容器可以随时重建 沙箱是加分项:如果你想让 AI 工具执行更安全,开启 OPENCLAW_SANDBOX=1就够了