在 Docker 中运行 OpenClaw

由于直接在 Mac 上运行 OpenClaw(也叫 Clawdbot aka Moltbot)存在限制,尝试在 Docker 容器中运行是一个可行的方案。OpenClaw 官方文档已支持 Docker 部署。
1、使用 Docker Compose 配置
首先,克隆他们的 GitHub 仓库:
git clone https://github.com/openclaw/openclaw
它包含一个用于 Docker 运行的脚本 docker-setup.sh,该脚本使用 Docker Compose 和 docker-compose.yml 文件。
该脚本会在本地创建两个文件夹作为卷挂载到容器中:
~/.openclaw:配置目录,包含记忆、配置及第三方 API 密钥等。~/openclaw/workspace:工作区目录,代理运行时可直接访问的文件存储地。
2、回答初始化问题
首次运行时,OpenClaw 会询问多个配置项。部分关键设置如下:
- 入职模式:手动
- 你想设置什么:本地网关(这台机器)
- 模型提供商:建议使用带有 ChatGPT OAuth 的 OpenAI Codex,以便利用现有订阅覆盖 Token 费用。
选择模型后,OpenClaw 会提供一个 URL 用于浏览器身份验证,随后将重定向回本地服务完成流程。
- Tailscale:根据网络需求决定是否启用,若无需穿透可跳过。
启动并运行后,可通过以下命令查看容器状态:
docker ps
示例输出显示运行图像为 openclaw:local,容器名称为 openclaw-openclaw-gateway-1。
3、运行管理命令
Docker Compose 提供的另一个容器 openclaw-cli 可用于管理实例。注意必须在与 docker-compose.yml 相同的文件夹中运行。
docker compose run --rm openclaw-cli status
4、设置 Telegram 机器人
OpenClaw 支持多种消息平台,Telegram 设置较为简便。
- 拥有 Telegram 账户。
- 联系 @BotFather 创建新机器人。
- 发送
/newbot并按提示命名获取令牌。 - 将令牌提供给 OpenClaw 初始设置向导。
- 配对步骤:OpenClaw 会通过 Telegram 发送配对代码,运行以下命令批准:
docker compose run --rm openclaw-cli pairing approve telegram <CODE>
此时即可通过手机 Telegram 向机器人发送消息。
5、访问 Web UI
OpenClaw 默认 Web UI 运行在端口 18789。直接访问 http://localhost:18789 需先进行身份验证。
获取特殊 ?token=... 参数的方式:
docker compose run --rm openclaw-cli dashboard --no-open
若遇到 disconnected (1008): pairing required 错误,可使用替代方法列出设备并批准:
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
仪表板界面包含聊天、控制、代理、设置等资源模块,支持调试与交互。

6、作为 root 运行命令
OpenClaw 默认以无 sudo 权限用户运行。如需安装额外包,可进入 root shell:
docker compose exec -u root openclaw-gateway bash
执行安装命令:
apt-get update && apt-get install -y ripgrep


