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

常见镜像标签包括:

  • latest
  • main
  • 具体版本号,例如 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/workspaceAgent 读写任务文件的目录
认证密钥目录/home/node/.config/openclaw保存 OAuth/API key 加密所需的本地密钥

宿主机路径一般由 .env 中这些变量控制:

OPENCLAW_CONFIG_DIR=
OPENCLAW_WORKSPACE_DIR=
OPENCLAW_AUTH_PROFILE_SECRET_DIR=

建议定期备份这些目录,尤其是:

  • .env
  • openclaw.json
  • agents/
  • 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

检查三点:

  1. Compose 是否包含 host.docker.internal:host-gateway
  2. Ollama 是否监听 0.0.0.0:11434
  3. 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. 一套推荐落地流程

个人或小团队建议按这个顺序来:

  1. 用官方 setup.sh 跑通 OpenClaw。
  2. 只在本机或 SSH 隧道里访问控制台。
  3. 配好至少一个模型提供商。
  4. 先连接 Telegram 或 Web 控制台做测试。
  5. 开启 Lobster 的 alsoAllow
  6. 从只读工作流开始,例如“汇总信息”“生成日报”。
  7. 涉及发送、删除、修改的流程全部加审批。
  8. 稳定后再接入更多渠道和自动化任务。

16. 参考链接