OpenClaw Lobster Docker Compose 安装使用教程
适用对象:想用 Docker Compose 部署 OpenClaw,并启用 Lobster 工作流工具的个人用户、服务器管理员或团队内部运维人员。
文档日期:2026-06-01
主要参考:OpenClaw 官方 Docker 文档、OpenClaw 官方 Lobster 文档。
1. OpenClaw 和 Lobster 是什么
OpenClaw 是一个自托管的 AI Agent 网关。它可以把聊天渠道、控制台、插件工具和 AI 模型连接起来,让你在自己的机器或服务器上运行一个长期在线的智能助手。
Lobster 是 OpenClaw 里的一个可选工作流工具。它的作用是把多步操作写成一个可审计、可恢复、带审批节点的流程。例如“读取邮件 -> 分类 -> 生成草稿 -> 等待确认 -> 发送”,以前要来回多轮对话,现在可以用一个 Lobster pipeline 串起来。
简单理解:
- OpenClaw:负责运行网关、管理 Agent、连接模型和渠道。
- Docker Compose:负责把 OpenClaw 容器化部署起来。
- Lobster:负责把多步骤任务编排成安全、可恢复的工作流。
2. 部署前准备
2.1 机器要求
建议配置:
- CPU:2 核及以上
- 内存:至少 2 GB,推荐 4 GB 以上
- 磁盘:至少 10 GB 可用空间
- 系统:Linux、macOS、Windows + Docker Desktop 均可
官方 Docker 文档提示,镜像构建阶段可能会因为内存不足被 OOM 杀掉,1 GB 主机容易出现 exit 137,建议至少准备 2 GB 内存。
2.2 软件要求
确认已安装:
docker --version
docker compose version
git --version
如果是 Windows,建议使用 Docker Desktop,并确保 Docker Desktop 已启动。
2.3 准备模型 API Key
OpenClaw 本身不是大模型,它需要连接模型提供商。你至少准备一种模型访问方式,例如:
- OpenAI API Key
- Anthropic API Key
- Gemini API Key
- DeepSeek API Key
- 本地 Ollama 或 LM Studio
实际可选项以 OpenClaw onboarding 向导为准。
3. 推荐安装方式:官方 Docker Compose
官方推荐从 OpenClaw 源码仓库根目录运行 Docker setup 脚本。脚本会帮你完成镜像构建或拉取、生成网关 token、创建持久化目录、写入 .env,并启动 gateway。
3.1 克隆项目
git clone https://github.com/openclaw/openclaw.git
cd openclaw
3.2 使用本地构建方式启动
./scripts/docker/setup.sh
这个方式会在本地构建 OpenClaw 镜像,适合想跟随源码版本或需要自定义镜像的人。
3.3 使用官方预构建镜像启动
如果你不想本地构建,可以使用官方预构建镜像:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.sh
常见镜像标签包括:
latestmain- 具体版本号,例如
2026.2.26
注意:如果国内服务器拉取 GitHub Container Registry 较慢,可以配置 Docker 镜像加速,或先在网络环境更好的机器上拉取后再转存。
4. 启动后访问控制台
安装脚本启动完成后,浏览器访问:
http://127.0.0.1:18789/
如果是远程服务器,请先用 SSH 隧道访问,不建议直接把控制台暴露到公网:
ssh -L 18789:127.0.0.1:18789 user@your-server-ip
然后在本机浏览器打开:
http://127.0.0.1:18789/
安装脚本会把网关 token 写入项目根目录的 .env。如果控制台要求输入 shared secret/token,可以查看:
cat .env
找到:
OPENCLAW_GATEWAY_TOKEN=你的token
5. 常用 Docker Compose 命令
5.1 查看服务状态
docker compose ps
5.2 查看日志
docker compose logs -f openclaw-gateway
5.3 停止服务
docker compose down
5.4 后台启动
docker compose up -d openclaw-gateway
5.5 获取控制台地址
docker compose run --rm openclaw-cli dashboard --no-open
5.6 运行 CLI 命令
OpenClaw 官方 Compose 文件里通常有两个服务:
openclaw-gateway:真正运行网关的服务openclaw-cli:给管理员执行命令用的 CLI sidecar
常见用法:
docker compose run --rm openclaw-cli gateway probe
docker compose run --rm openclaw-cli devices list
在 CI 或非交互环境中,建议加 -T 关闭伪终端:
docker compose run -T --rm openclaw-cli gateway probe
6. 持久化目录说明
官方 Docker Compose 会把宿主机目录挂载到容器内,避免容器重建后数据丢失。
默认重点目录:
| 用途 | 容器内路径 | 说明 |
|---|---|---|
| OpenClaw 配置和状态 | /home/node/.openclaw | 保存 openclaw.json、会话、插件、运行状态等 |
| 工作区 | /home/node/.openclaw/workspace | Agent 读写任务文件的目录 |
| 认证密钥目录 | /home/node/.config/openclaw | 保存 OAuth/API key 加密所需的本地密钥 |
宿主机路径一般由 .env 中这些变量控制:
OPENCLAW_CONFIG_DIR=
OPENCLAW_WORKSPACE_DIR=
OPENCLAW_AUTH_PROFILE_SECRET_DIR=
建议定期备份这些目录,尤其是:
.envopenclaw.jsonagents/workspace/- auth profile secret 目录
7. 手动 Docker Compose 模板
如果你不想使用官方 setup.sh,也可以手动写一个 Compose 文件。下面模板适合入门和测试,生产环境建议优先使用官方仓库自带的 docker-compose.yml 与 setup 脚本。
新建目录:
mkdir openclaw-docker
cd openclaw-docker
mkdir -p data workspace auth-secrets
新建 .env:
OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_BRIDGE_PORT=18790
OPENCLAW_MSTEAMS_PORT=3978
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_TZ=Asia/Shanghai
OPENCLAW_GATEWAY_TOKEN=请改成一串足够长的随机字符串
新建 docker-compose.yml:
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
container_name: openclaw-gateway
env_file:
- .env
environment:
HOME: /home/node
OPENCLAW_HOME: /home/node
OPENCLAW_STATE_DIR: /home/node/.openclaw
OPENCLAW_CONFIG_PATH: /home/node/.openclaw/openclaw.json
OPENCLAW_CONFIG_DIR: /home/node/.openclaw
OPENCLAW_WORKSPACE_DIR: /home/node/.openclaw/workspace
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
TZ: ${OPENCLAW_TZ:-Asia/Shanghai}
volumes:
- ./data:/home/node/.openclaw
- ./workspace:/home/node/.openclaw/workspace
- ./auth-secrets:/home/node/.config/openclaw
ports:
- "${OPENCLAW_GATEWAY_PORT:-18789}:18789"
- "${OPENCLAW_BRIDGE_PORT:-18790}:18790"
- "${OPENCLAW_MSTEAMS_PORT:-3978}:3978"
extra_hosts:
- "host.docker.internal:host-gateway"
cap_drop:
- NET_RAW
- NET_ADMIN
security_opt:
- no-new-privileges:true
init: true
restart: unless-stopped
command:
- node
- dist/index.js
- gateway
- --bind
- ${OPENCLAW_GATEWAY_BIND:-lan}
- --port
- "18789"
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
interval: 30s
timeout: 5s
retries: 5
start_period: 20s
openclaw-cli:
image: ${OPENCLAW_IMAGE}
env_file:
- .env
network_mode: "service:openclaw-gateway"
environment:
HOME: /home/node
OPENCLAW_HOME: /home/node
OPENCLAW_STATE_DIR: /home/node/.openclaw
OPENCLAW_CONFIG_PATH: /home/node/.openclaw/openclaw.json
OPENCLAW_CONFIG_DIR: /home/node/.openclaw
OPENCLAW_WORKSPACE_DIR: /home/node/.openclaw/workspace
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
BROWSER: echo
TZ: ${OPENCLAW_TZ:-Asia/Shanghai}
volumes:
- ./data:/home/node/.openclaw
- ./workspace:/home/node/.openclaw/workspace
- ./auth-secrets:/home/node/.config/openclaw
cap_drop:
- NET_RAW
- NET_ADMIN
security_opt:
- no-new-privileges:true
stdin_open: true
tty: true
init: true
entrypoint: ["node", "dist/index.js"]
depends_on:
- openclaw-gateway
启动:
docker compose up -d openclaw-gateway
检查:
docker compose ps
docker compose logs -f openclaw-gateway
重要:手动模板没有官方
setup.sh的 onboarding 自动化流程。如果你是第一次部署,优先用官方方式;手动模板更适合已经理解 OpenClaw 配置机制的人。
8. 配置聊天渠道
OpenClaw 可以连接 WhatsApp、Telegram、Discord 等渠道。以官方 CLI 容器执行:
8.1 WhatsApp
docker compose run --rm openclaw-cli channels login
按提示扫码登录。
8.2 Telegram
先在 Telegram 找 BotFather 创建 bot,拿到 token,然后执行:
docker compose run --rm openclaw-cli channels add --channel telegram --token "你的Telegram Bot Token"
8.3 Discord
准备 Discord bot token 后执行:
docker compose run --rm openclaw-cli channels add --channel discord --token "你的Discord Bot Token"
9. 启用 Lobster 工具
Lobster 是可选插件工具,不是默认启用。官方推荐使用 alsoAllow 增量启用,这样不会覆盖原有核心工具集。
9.1 全局启用
在 OpenClaw 配置中加入:
{
"tools": {
"alsoAllow": ["lobster"]
}
}
9.2 只给 main agent 启用
{
"agents": {
"list": [
{
"id": "main",
"tools": {
"alsoAllow": ["lobster"]
}
}
]
}
}
不建议直接写
tools.allow: ["lobster"],除非你明确想进入严格 allowlist 模式。否则可能导致其他核心工具不可用。
配置文件通常位于宿主机的 OpenClaw 配置目录中,例如:
~/.openclaw/openclaw.json
如果使用本文的手动 Compose 模板,则对应:
./data/openclaw.json
修改后重启:
docker compose restart openclaw-gateway
10. Lobster 基础用法
Lobster 的核心思想是“管道 + 审批 + 可恢复”。
10.1 直接运行 pipeline
示例:把三个命令串起来,前一个命令的 JSON 输出传给下一个命令。
{
"action": "run",
"pipeline": "exec --json --shell 'inbox list --json' | exec --stdin json --shell 'inbox categorize --json' | exec --stdin json --shell 'inbox apply --json' | approve --preview-from-stdin --limit 5 --prompt 'Apply changes?'",
"timeoutMs": 30000
}
如果流程需要审批,Lobster 会返回 resumeToken。用户审批后再恢复:
{
"action": "resume",
"token": "<resumeToken>",
"approve": true
}
10.2 使用 .lobster 工作流文件
可以把流程写成文件,方便版本管理。
示例:workspace/inbox-triage.lobster
name: inbox-triage
args:
tag:
default: family
steps:
- id: collect
command: inbox list --json
- id: categorize
command: inbox categorize --json
stdin: $collect.stdout
- id: approve
command: inbox apply --approve
stdin: $categorize.stdout
approval: required
- id: execute
command: inbox apply --execute
stdin: $categorize.stdout
condition: $approve.approved
运行时让 OpenClaw 调用 Lobster:
{
"action": "run",
"pipeline": "/home/node/.openclaw/workspace/inbox-triage.lobster",
"argsJson": "{\"tag\":\"family\"}",
"timeoutMs": 30000
}
10.3 适合 Lobster 的场景
适合:
- 每天固定执行的多步检查
- 需要“先预览、再确认、最后执行”的任务
- 邮件分类、工单流转、日报生成、批量通知
- 希望保留审计记录和恢复 token 的流程
不适合:
- 一次性的闲聊问题
- 高度开放、每一步都需要大量自由推理的探索型任务
- 没有明确输入输出格式的脚本
11. 连接本地 Ollama 或 LM Studio
如果 OpenClaw 容器要访问宿主机上的 Ollama 或 LM Studio,容器里通常应使用:
host.docker.internal
例如:
http://host.docker.internal:11434
http://host.docker.internal:1234
Linux Docker Engine 下,本文模板已加入:
extra_hosts:
- "host.docker.internal:host-gateway"
宿主机服务本身也要监听可被 Docker 访问的地址,例如:
OLLAMA_HOST=0.0.0.0:11434 ollama serve
LM Studio 可使用类似方式让 server 绑定到 0.0.0.0。
12. 安全建议
12.1 不要直接暴露到公网
不建议把 18789 直接开放到公网。推荐:
- 本机使用
127.0.0.1 - 远程服务器使用 SSH 隧道
- 必须公网访问时,放到反向代理后面,并开启 HTTPS、强认证和 IP 白名单
12.2 保护 .env 和持久化目录
.env 里可能有 gateway token,OpenClaw 配置目录里可能有认证信息。不要上传到公开 Git 仓库。
建议:
chmod 600 .env
12.3 谨慎安装插件和工作流
Lobster 可以执行命令,插件也可能获得工具权限。只安装可信来源的插件和工作流,不要直接运行陌生人给的 pipeline。
12.4 使用审批节点
涉及这些动作时,建议强制加入审批:
- 发邮件
- 发消息
- 删除文件
- 修改生产配置
- 调用付费 API
- 访问敏感数据
13. 常见问题排查
13.1 构建失败,提示 exit 137
通常是内存不足。解决:
- 提高机器内存到 2 GB 以上
- Docker Desktop 调高内存限制
- 改用官方预构建镜像:
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.sh
13.2 控制台提示 unauthorized 或需要 pairing
重新获取 dashboard 链接:
docker compose run --rm openclaw-cli dashboard --no-open
查看设备请求:
docker compose run --rm openclaw-cli devices list
审批设备:
docker compose run --rm openclaw-cli devices approve <requestId>
13.3 容器内写入配置报 EACCES
OpenClaw 镜像默认以 node 用户运行,uid 通常是 1000。如果宿主机挂载目录权限不匹配,可能会报 EACCES。
Linux 上可以修复目录所有者:
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
13.4 CLI 安装插件时 DNS 报 EAI_AGAIN
部分 Docker Desktop 环境中,openclaw-cli sidecar 在收紧能力后可能出现 DNS 查询失败。官方建议默认保持安全配置,仅对一次性插件安装命令使用临时 override。
创建 docker-compose.cli-no-dropped-caps.local.yml:
services:
openclaw-cli:
cap_drop: !reset []
然后仅在安装插件时使用:
docker compose -f docker-compose.yml -f docker-compose.cli-no-dropped-caps.local.yml run --rm openclaw-cli plugins install <package>
安装完成后,平时仍使用默认 Compose 文件。
13.5 容器访问不到本地 Ollama
检查三点:
- Compose 是否包含
host.docker.internal:host-gateway - Ollama 是否监听
0.0.0.0:11434 - OpenClaw 里配置的地址是否是
http://host.docker.internal:11434
14. 更新 OpenClaw
如果使用官方源码方式:
cd openclaw
git pull
./scripts/docker/setup.sh
如果使用预构建镜像:
docker compose pull
docker compose up -d
更新前建议备份:
cp .env .env.bak
以及备份 OpenClaw 配置目录、workspace 和 auth secret 目录。
15. 一套推荐落地流程
个人或小团队建议按这个顺序来:
- 用官方
setup.sh跑通 OpenClaw。 - 只在本机或 SSH 隧道里访问控制台。
- 配好至少一个模型提供商。
- 先连接 Telegram 或 Web 控制台做测试。
- 开启 Lobster 的
alsoAllow。 - 从只读工作流开始,例如“汇总信息”“生成日报”。
- 涉及发送、删除、修改的流程全部加审批。
- 稳定后再接入更多渠道和自动化任务。
16. 参考链接
- OpenClaw 官方 Docker 文档:https://docs.openclaw.ai/install/docker
- OpenClaw 官方 Lobster 文档:https://docs.openclaw.ai/tools/lobster
- OpenClaw GitHub 仓库:https://github.com/openclaw/openclaw
- OpenClaw Container Registry:https://github.com/openclaw/openclaw/pkgs/container/openclaw