查看: 50|回复: 0

[教程分享] openclaw 部署指南(手动docker详细版)

[复制链接]

6

主题

1

回帖

61

积分

超级版主

积分
61
发表于 2026-4-17 23:05:42 | 显示全部楼层 |阅读模式
部署的时候我找了很多docker部署的公众号,虽然说官方也有文档,但是实际部署时候问题很多。写在这里供大家参考吧。注意,在本地电脑docker部署的话,可能会遇到更多问题。我这个是在云服务器上部署的,操作系统是debian 13,安装了1panel面板。面板上可以直接安装openclaw,但是好像不能自定义模型。

1. 部署

首先需要确定使用方式,这决定了你用什么方式部署。先通过 README.md 整体了解一下这个项目:https://github.com/openclaw/openclaw/blob/main/README.md
通过阅读文档,我们知道 OpenClaw 可以跑在本地宿主机、虚拟机、云服务器等载体上,如何和它对话呢?
它支持非常多的渠道,我选择了 Telegram。因为小龙虾的能力上限取决于模型能力,所以毋庸置疑,直接选择当前的顶级模型,Claude 或者 GPT,那结论就出来了,最佳配置方案:海外云 VPS + Telegram + 顶级模型。
image1920×1034 168 KB

1.1 手动在云服务器上部署,先下载项目

git clone https://github.com/openclaw/openclaw.git cd openclaw ./docker-setup.sh
运行脚本后,会在宿主机上创建两个重要文件夹,它们会被挂载到 Docker 容器中:
 ~/.openclaw — 配置目录
  • 存储 OpenClaw 的记忆
  • 配置文件
  • 第三方 API 密钥等
 ~/openclaw/workspace — 工作空间目录
  • Agent 可直接访问的文件目录
  • Agent 创建的文件也会保存在这里

1.2 Docker 启动 OpenClaw 后会自动打开配置引导

先选择 Skip for now 跳过
消息渠道我想用 Telegram,所以需要先做两件事:
  1. 1. 先在 Telegram 中搜索 @userinfobot,获取自己账号的用户 ID
  2. 2. 搜索 @BotFather,创建机器人,先创建机器人名(昵称),再创建机器人用户名,创建好之后会给你一个 Bot API Token,记住这个 Token
  3. 3. 等到 Telegram (Bot API) 这里的时候需要填上一步获取的 Bot API Token
然后就是一路跳过,hooks 这里选择:session-memory
等出现了 Token 提示,说明配置完成:
Token: 24b38f4bb1401bd949f5a2cc156e99bad6591847919f3ce0ab4cab02d69e037e
大功告成。浏览器访问 http://公网IP:18789,但是这里最好用域名来访问,在 5.2 节 有说明。

2. 消息通知渠道

然后就是在服务器上执行配对命令:
# 宿主机直接执行 openclaw pairing approve telegram YKEY9974 # Docker 版执行方式 docker compose run --rm openclaw-cli pairing approve telegram YKEY9974
注意: 配对码默认 1 小时过期,每个渠道待处理请求默认上限 3 个。执行命令的时候如果过期,日志会提示:
[openclaw] Failed to start CLI: Error: No pending pairing request found for code: 8AGF3F58
这个需要重新在 Telegram 发送机器人 /start 获取新配对码。
配对成功:

3. 模型选择

这里很多人都会纠结,模型我对比了很多家。只需要从两个角度来考虑:

按任务复杂度

类型
推荐模型
编程、金融、数据分析等复杂任务
Claude Opus 4.6、GPT 5.2 Pro
整理文件资料、P 图、写作等日常任务
Kimi 2.5、GLM 5.0、MiniMax-M2.5

按使用频次

频次
建议
高频使用
开通模型包月/包年套餐,GLM5 优先推荐,能力基本上能和 Opus 4.5 打平
低频使用
推荐企业级 API 按量付费,稳定且便宜,如 Atlas Cloud、接口 AI

4. Skills & MCP

Skills

推荐去 ClawHub 社区下载,注册个账号,可以获取 API 密钥让小龙虾自己去安装。
推荐 Skills:
  • find-skills
  • Agent Browser
  • DevTools MCP
  • auto-updater
  • Openclaw Command Center
  • self-improving-agent

MCP

因为我用的是智谱的模型,所以可以用这几个专属的 MCP,应该比第三方 MCP 的效果要好。先装上再说,不好用到时候再换就行。

5. 踩坑点

5.1 权限问题:EACCES permission denied

现象:  ./docker-setup.sh 启动镜像之后,出现报错:
Error: EACCES: permission denied, open '/home/node/.openclaw/openclaw.json.7.xxx.tmp'
原因: Docker 权限不够 — 容器用户(uid=1000)试图写入 root(或其他用户)拥有的目录。
解决方案:
chown -R 1000:1000 "$HOME/.openclaw"
修改完权限后可以直接执行以下命令重新完成初始化向导:
docker compose run --rm openclaw-cli onboard

5.2 浏览器访问 http://公网IP:18789 的安全问题

现象: 页面报错:
disconnected (1008): control ui requires HTTPS or localhost (secure context)
This page is HTTP, so the browser blocks device identity. Use HTTPS (Tailscale Serve) or open http://127.0.0.1:18789 on the gateway host.
If you must stay on HTTP, set gateway.controlUi.allowInsecureAuth: true (token-only).
解决方案: 开启 HTTPS,需要到服务器上去创建一个反向代理站点。这里我直接使用 Caddy 来管理多个子域名,详细过程自行搜索。
最后可以使用域名 https://域名.com/ 来访问小龙虾。

5.3 Docker 用户部署遇到的问题

5.3.1 disconnected (1008): pairing required

原因: 控制 UI 第一次从"新浏览器/新设备"连到 Gateway 时,需要做一次性"设备配对批准"(即使同一台机器、同一个 Tailnet 也可能需要)。
openclaw devices list openclaw devices approve <requestId>
如果上面的解决不了,参考以下四步排查:
Step 1 — 修复容器网络
CLI 容器无法访问 127.0.0.1 的网关,因为容器内部的 localhost 指向自己。在 docker-compose.yml 中添加:
openclaw-cli: depends_on: - openclaw-gateway environment: OPENCLAW_GATEWAY_URL: ws://openclaw-gateway:18789
Step 2 — 设置 Gateway 绑定到局域网
内置向导默认使用回环地址,但浏览器请求是通过 Docker 的桥接网络(172.18.0.x)到达的。在 ~/.openclaw/openclaw.json 中:
"gateway": { "bind": "lan" }
Step 3 — 同步 Gateway Token
docker-setup.sh  .env 文件中生成一个令牌,但引导向导会将不同的令牌写入 openclaw.json。请确保 ~/.openclaw/openclaw.json 中的 gateway.auth.token  .env 文件中的 OPENCLAW_GATEWAY_TOKEN 匹配。
Step 4 — 批准待匹配设备
设备卡在待处理状态,因为 CLI 无法连接到网关来批准它们:
# 选项 A — 在网关容器内直接运行 docker compose exec openclaw-gateway node dist/index.js devices list docker compose exec openclaw-gateway node dist/index.js devices approve <request-id> # 选项 B — 手动将条目从 pending.json 移至 paired.json # ~/.openclaw/devices/pending.json → ~/.openclaw/devices/paired.json # 将 pending.json 清空为 {},然后重启网关 # 选项 C — 快速解决,在 openclaw.json 中添加: # "controlUi": { "allowInsecureAuth": true }
完成上述任何一项操作后,请重启网关:
docker compose restart openclaw-gateway
然后打开 http://localhost:18789/#token=<your-token-from-.env>
我都试了,确实解决了。

5.3.2 其他问题

使用 openclaw-cli 命令行
javascript
OpenClaw 命令行速查
Docker 版  systemctl 替换为 docker compose run --rm openclaw-cli,后面不变。
javascript
核心文件说明
OpenClaw 有几个核心文件,作用是引导启动角色、身份和工具。可以在重装以后直接替换,让它具备前世的记忆和能力。
它们在工作区 ~/.openclaw/workspace
文件
作用
AGENTS.md
行为准则,什么能做什么不能做
SOUL.md
定义性格、技能和处理逻辑
TOOLS.md
能用哪些工具
IDENTITY.md
基本信息,名字和图标
USER.md
关于你的偏好
HEARTBEAT.md
默认为空或仅包含注释,用于定期检查任务
MEMORY.md
长期记忆文件
Spawn 分身能力: 调用 spawn 可以开启 OpenClaw 的分身能力,用于多任务。
示例:spawn 两个 subagent,分别从正方、反方角度阐述结婚的好处,不少于 3 轮,把详细过程展示出来。
给小龙虾换一个没有"班味"的性格设定
javascript
开启分身:让不同的机器人干不同的活

   注意: 因为是 Docker 容器启动的,导致 agent 无法一起工作,互相不可见,共用了同一个会话,所以这个功能在 Docker 版暂时用不了。
配置参考:
javascript
分工说明:
  • 你(主身): 负责汇总其它机器人的工作报告、其它日常事务、生活和工作安排等
  • bot1: 处理编程、数据分析等相关复杂的技术任务
  • bot2: 处理营销推广、自媒体创作、法律、医学等文科类的工作任务
潮流之家论坛免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!侵删请致信E-mail:10000@clzjwl.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:10000@clzjwl.cn

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2024047598号-3

在本版发帖
关注公众号
返回顶部