在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聊天界面:

![OpenClaw Gateway Dashboard Web界面的截图。标题显示"OPENCLAW GATEWAY DASHBOARD"并带有绿色"Health OK"指示器。左侧导航栏包含导航部分:聊天(聊天突出显示)、控制(概览、通道、实例、会话、Cron作业)、代理(技能、节点)、设置(配置、调试、日志)和资源(文档)。主要内容区域显示"聊天"并带有副标题"用于快速干预的网关直接聊天会话。"和"telegram:6580064359"标识符。一条用户消息在下午4:08读取"显示你所有可用的配置工具的详细列表"。助手响应说:"这是我在此OpenClaw会话中可用的工具完整列表(按配置)。这些只是我可以通过编程方式调用的工具:"后跟分类工具:"文件和workspace"(read — 读取文件(文本或图像)。支持大文件的偏移量/限制;write — 创建/覆盖文件(创建父目录);edit — 通过精确字符串替换进行精确的就地编辑),"Shell /进程"(exec — 运行shell命令(可选PTY、后台、超时);process — 管理运行的exec会话(列表/轮询/日志/写入/终止等)),"Web"(web_search — 搜索Web(Brave Search API);web_fetch — 获取URL并提取可读内容(markdown/文本);browser — 控制浏览器(打开/导航/快照/屏幕截图/操作等)),"UI / 渲染"(canvas — 展示/评估/快照Canvas表面(用于node画布/UI渲染)),和"设备 / 节点"(cut off)。底部显示带有占位符"消息(↵发送,Shift+↵换行,粘贴图像)"和"新会话"和珊瑚"发送"按钮的消息输入](https://i-blog.csdnimg.cn/img_convert/dcfe97321c90d5f2d1472996f536e897.jpeg) ### 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 - 汇智网](https://www.hubwiz.com/blog/run-openclaw-in-docker/)

相关推荐
cyber_两只龙宝2 小时前
haproxy--使用socat工具实现对haproxy权重配置的热更新
linux·运维·负载均衡·haproxy·socat
zhang6183992 小时前
Linux中不同服务器之间迁移python 虚拟环境-conda-pack
linux·运维·python
深圳市恒讯科技2 小时前
2026新加坡服务器硬件防火墙配置推荐
运维·服务器·云计算
小江||小廖2 小时前
服务器如何设置共享文件夹,让其他内网电脑可以访问
运维·服务器
wsy_6662 小时前
docker
java·spring cloud·docker
历程里程碑2 小时前
Linux19 实现shell基本功能
linux·运维·服务器·算法·elasticsearch·搜索引擎·哈希算法
霍格沃兹测试学院-小舟畅学2 小时前
Playwright测试超时管理:全局与局部超时设置
运维·服务器·网络
lpruoyu2 小时前
【Docker进阶-04】容器挂载&docker cp
docker·容器
码刘的极客手记2 小时前
vSphere 4.1 三大实用实战:vCenter 告警自动化、SIOC 无 License 启用及 Dropbox 存储运行 VM
运维·服务器·网络·自动化·虚拟机