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

相关推荐
梦远青城12 小时前
Docker 部署python的paddle进行OCR文字识别身份证
python·docker·ocr·paddle·身份证识别
jiecy12 小时前
为Linux系统双网卡配置静态路由
linux·运维
CodexDave13 小时前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
weixin_3077791313 小时前
Linux下Jenkins数据故障的系统化排查Shell脚本
linux·运维·服务器·jenkins
荒--13 小时前
Burp Suite(二)
linux·运维·服务器
java_logo13 小时前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
YangYang9YangYan13 小时前
2026自动化背景无项目经验转数据分析的可行性分析
运维·数据分析·自动化
ShallWeL13 小时前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
internet Boy14 小时前
服务器机房硬件入门教程
运维·服务器
小白还菜14 小时前
linux(Debian)使用mdadm组磁盘RAID1阵列
linux·运维