在Docker中运行OpenClaw

我不够勇敢直接在我的Mac上运行OpenClaw(也叫Clawdbot aka Moltbot),所以我决定尝试在Docker容器中运行它。

OpenClaw开箱即支持Docker,在他们的文档此页面中描述。这对我有效。

1、使用他们的Docker Compose配置

首先,克隆他们的GitHub仓库:

复制代码
git clone https://github.com/openclaw/openclaw

它包含一个在Docker中运行OpenClaw的脚本,称为docker-setup.sh,后者使用Docker Compose和他们的docker-compose.yml文件。

该脚本将直接在你的Mac上创建两个文件夹,这些文件夹将作为卷挂载在Docker容器中:

~/.openclaw是配置目录。这将最终包含OpenClaw记忆、配置、第三方API密钥等。

~/openclaw/workspace是工作区目录,充满了文件,这些文件在代理在容器内运行时直接可用。代理创建的文件也将保存在这里。

2、回答所有这些问题

在首次运行时,OpenClaw会问你很多问题。其中大多数都是相当明显的,但我仍然不得不重新开始几次才能把一切都做对。我发现一些棘手的:

入职模式:手动

你想设置什么?:本地网关(这台机器)

模型提供商。我决定使用带有ChatGPT OAuth的OpenAI Codex,这使我能够对ChatGPT进行身份验证以使用我$20/月OpenAI订阅覆盖的代币。我这样做是因为我听说OpenClaw可以在API计划上花费很多 token,而使用ChatGPT给它可以花费多少钱设定了一个容易的上限。当你选择这个时,OpenClaw会给你一个在浏览器中打开的URL,该URL重定向回一个不运行的localhost服务并显示错误消息 --- 然后你复制并粘贴该localhost URL回OpenClaw以完成身份验证。这是那个样子的。

Tailscale:我第一次尝试配置它,结果是一台我无法使用的机器,所以第二次我说"不"。

一旦它启动并运行,你可以运行:

复制代码
docker ps

以查看容器。我的是运行图像openclaw:local并具有容器名称openclaw-openclaw-gateway-1。

3、运行管理命令

Docker Compose提供的另一个容器称为openclaw-cli,可用于运行openclaw CLI命令来管理实例。

这适用于那,但你必须 在与docker-compose.yml文件相同的文件夹中运行它。

复制代码
docker compose run --rm openclaw-cli status

4、设置Telegram机器人

OpenClaw可以通过多种不同的消息平台进行通信,包括WhatsApp和iMessage以及Telegram和Slack和Discord。这意味着你可以直接从手机控制容器中的实例。

我认为Telegram看起来最容易设置。

你需要一个Telegram帐户。然后通过与Telegram上的@BotFather聊天来创建一个新机器人。

开始与@BotFather的聊天

发送命令/newbot

按照说明命名你的机器人并获取令牌

该令牌随后可以作为初始设置向导的一部分提供给OpenClaw。

还有一个剩余步骤:你必须将你的Telegram帐户与你的新机器人和OpenClaw实例配对。

OpenClaw将通过Telegram向你发送一条带有配对代码的消息,然后运行此:

复制代码
docker compose run --rm openclaw-cli pairing approve telegram <CODE>

此时你应该能够直接从手机上的Telegram向你的机器人发送消息!

5、访问Web UI

OpenClaw在端口18789上运行默认Web UI。如果你直接在http://localhost:18789访问它,你会看到一个错误告诉你需要先进行身份验证。

要做到这一点,你需要一个特殊的?token=... URL参数。这可能在设置期间显示,但如果你丢失了它,你可以像这样获得一个新的:

复制代码
docker compose run --rm openclaw-cli dashboard --no-open

获取输出的URL以访问界面。

有时这还不够 --- 你可能会看到此错误:

复制代码
disconnected (1008): pairing required

由于某种原因,openclaw-cli容器在这里对我不起作用,但这种运行openclaw命令的替代方法确实有效:

复制代码
docker compose exec openclaw-gateway \
node dist/index.js devices list

这显示了配对列表,希望包括一个尚未批准的请求,像这个:

复制代码
Pending (1)
┌──────────────────────────────┬───────────────────────────────────┬──────────┬────────────┬────────┐
│ Request                              │ Device                            │ Role     │ IP         │ Age    │ Flags  │
├──────────────────────────────────────┼───────────────────────────────────┼──────────┼────────────┼────────┼────────┤
│ 6f9db1bd-a1cc-4d3f-b643-2c195262464e │ 8b7bbf4f69633058dc3beee8a56adbccf │ operator │ 172.18.0.1 │ 2m ago │        │
│                                      │ aafc8be8058bea8a06be1cb7bfad9b3   │          │            │        │        │
└──────────────────────────────────────┴───────────────────────────────────┴──────────┴────────────┴────────┴────────┘

要批准它,运行此命令:

复制代码
docker compose exec openclaw-gateway \
node dist/index.js devices approve \
6f9db1bd-a1cc-4d3f-b643-2c195262464e

仪表板UI看起来像这样,并且有大量不同的调试工具加上Web聊天界面:

[

6、作为root运行命令

我发现自己想要安装一些额外的包,但OpenClaw机器人本身作为没有sudo访问的用户运行(可能是最好的!)

你可以像这样以root身份访问Bash shell:

复制代码
docker compose exec -u root openclaw-gateway bash

我在那里安装了额外的包,像这样:

复制代码
apt-get update && apt-get install -y ripgrep

原文链接:在Docker中运行OpenClaw - 汇智网

相关推荐
Decay__3 分钟前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子2 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
万联WANFLOW3 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
Decay__6 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
江华森7 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼7 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by209999 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
螺丝钉tina9 小时前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
迪菲赫尔曼9 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测