在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 - 汇智网

相关推荐
j_xxx404_7 分钟前
MySQL库操作硬核解析:字符集、校验规则、大小写比较、备份恢复与连接排查
运维·服务器·数据库·人工智能·mysql·ai·oracle
机汇五金_1 小时前
影响交换机箱体使用寿命的几个关键因素
运维·服务器·网络·python
无限进步_1 小时前
Linux进程终止——退出码、exit与_exit
linux·运维·服务器
小蜗子1 小时前
Windows 11 + RTX 5060 + WSL2 Ubuntu + NVIDIA DGL 容器
linux·运维·ubuntu
枕星而眠2 小时前
C++ 面向对象核心机制深度解析:多态性、虚函数、虚继承与 final 类
运维·开发语言·c++·后端
着迷不白2 小时前
八、shell脚本
linux·运维
tobias.b2 小时前
JumpServer4\.10\.16离线部署\+外部Nginx反向代理 解决30分钟空闲断开WebSocket超时(延长10天)
运维·websocket·nginx
流浪0012 小时前
Linux系统篇(四):一文吃透 Linux 虚拟地址空间:从页表映射到内核结构体全链路拆解
linux·运维·服务器
Jacob程序员2 小时前
WebSSH技术实现全解析
linux·运维·服务器·websocket
暗冰ཏོ2 小时前
运维岗位完整学习指南:从 Linux 基础到 DevOps / SRE 实战
linux·运维·服务器·ubuntu·运维开发·devops