在 Linux 上使用 Docker 运行 OpenClaw 来同时管理 QQ、Telegram 和 飞书(Feishu)是一个非常高效的选择。Docker 的隔离性可以确保不同平台的 Token 和插件环境互不干扰。
以下是针对 Linux 用户的详细教程:
第一步:安装 Docker 环境
如果你还没有安装 Docker,请执行以下命令(以 Ubuntu 为例):
# 更新并安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组(避免每次都输入 sudo)
sudo usermod -aG docker $USER
# 重启终端或运行下行命令使配置生效
newgrp docker
第二步:创建工作目录
建议为 OpenClaw 创建一个专属文件夹,方便管理配置文件和持久化数据。
mkdir ~/openclaw && cd ~/openclaw
mkdir data # 用于存放聊天记录和插件配置
第三步:编写 Docker Compose 配置文件
使用 docker-compose 是管理多平台账号最简单的方法。创建一个 docker-compose.yml 文件:
nano docker-compose.yml
将以下内容粘贴进去(根据需求修改变量):
services:
openclaw:
image: openclaw/openclaw:latest # 请根据官方文档确认最新镜像名container_name: openclaw-main
restart: always
volumes:
- ./data:/app/data
environment:
- ANTHROPIC_API_KEY=你的AI密钥 # 如果使用 Claude
- OPENAI_API_KEY=你的AI密钥 # 如果使用 GPT# 平台开关示例(具体变量名请参考 OpenClaw 官方最新文档)
- ENABLE_TELEGRAM=true
- ENABLE_FEISHU=true
- ENABLE_QQ=true
networks:
- openclaw-net
networks:
openclaw-net:
driver: bridge
第四步:各平台配置要点(安全性建议)
- Telegram
- 通过 @BotFather 获取
Bot Token。 - 运行容器后,使用命令进行配对:
docker exec -it openclaw-main openclaw-cli pairing approve telegram <验证码>。
- 飞书 (Feishu)
- 安全建议:使用“长连接模式”(Long Connection),这样你的 Linux 服务器不需要公网 IP 或配置 Webhook 回调,更安全。
- QQ
- 通常需要配合特定协议(如基于 NTQQ 的插件)。确保在
data 目录中正确配置了协议文件。
第五步:启动与运行
在 ~/openclaw 目录下执行:
# 后台启动
docker compose up -d
# 查看运行日志(确认是否报错)
docker compose logs -f
第六步:安全进阶建议
- 网络隔离:如果你的 OpenClaw 只是处理聊天,不需要暴露任何端口(如 80 或 443)到公网。上面的 YAML 配置默认是隐藏端口的。
- 数据备份:定期备份
~/openclaw/data 文件夹,这里包含了所有账号的登录状态(Session),丢失后需要重新扫码或配对。 - 更新镜像:
docker compose pull && docker compose up -d
在 Linux Docker 环境中,针对 Telegram 和 飞书 (Feishu) 的具体配置如下。QQ 的配置通常较为复杂(需配合额外的协议库),建议先调通前两者。
1. Telegram 详细配置步骤
Telegram 机器人由于服务器位于海外,在境内 Linux 服务器上使用时,必须配置代理。 [1]
- 获取 Token: 在 Telegram 中私聊 @BotFather,发送
/newbot,按照提示获取形如 123456789:ABCDEF... 的 API Token。 - 环境变量配置:
在 docker-compose.yml 的 environment 部分添加:- TELEGRAM_BOT_TOKEN=你的Token
# 境内服务器必填:配置代理(以本地 7890 端口为例)
- HTTP_PROXY=http://127.0.0.1:7890
- HTTPS_PROXY=http://127.0.0.1:7890
- 完成配对 (Pairing):
启动容器后,在 Telegram 给你的机器人发送 /start。机器人会返回一个 8 位验证码(如 JN4MSY23)。
在 Linux 终端执行以下命令批准配对:docker exec -it openclaw-main openclaw-cli pairing approve telegram 验证码
[2, 3]
2. 飞书 (Feishu) 详细配置步骤 [4]
飞书推荐使用 长连接 (WebSocket) 模式,这种模式下即使你的 Linux 服务器没有公网 IP(处于内网)也能正常接收消息,安全性更高。 [5, 6]
- 开发者后台设置
- 权限配置: 搜索并添加
im:message (发送消息)、im:message.p2p_msg:readonly (接收单聊消息) 和 im:message.group_at_msg (接收群聊 @ 消息)。 - 事件订阅: 在“事件订阅”中,将“接收消息”事件的推送方式设置为 WebSocket 长连接。
- 发布应用
- 获取凭证: 在“凭证与基础信息”中获取 App ID 和 App Secret。
- 环境变量配置:
- FEISHU_APP_ID=cli_xxxxxxxx
- FEISHU_APP_SECRET=xxxxxxxxxxxx
# 限制只有特定用户可以调教 AI(可选,* 代表所有人)
- FEISHU_ALLOW_FROM=["*"]
[5, 6]
3. QQ 账号安全使用建议
在 Docker 中挂载 QQ 机器人通常需要模拟 NTQQ 环境(如使用 OpenClaw 的相应插件)。
- 安全建议:务必开启 二步验证,并使用扫码登录而非明文密码。
- 多账号管理:如果需要运行多个 QQ 号,请在 Docker 中为每个账号映射独立的存储卷(Volume),防止 Session 文件冲突。
总结:完整配置参考
你可以将这些变量直接写入 ~/openclaw/docker-compose.yml:
environment:
- ANTHROPIC_API_KEY=sk-ant-xxx
# Telegram
- TELEGRAM_BOT_TOKEN=123456:xxxx
# Feishu
- FEISHU_APP_ID=cli_xxx
- FEISHU_APP_SECRET=xxx
# 代理设置 (如果需要)
- ALL_PROXY=socks5://127.0.0.1:7890
[1] https://github.com
[2] https://www.hostinger.com
[3] https://zeabur.com
[4] https://github.com
[5] https://github.com
[6] https://github.com
Docker部署OpenClaw完整教程https://cloud.tencent.com/developer/article/2629022
OpenClaw 快速接入QQ!1分钟拥有你的专属智能体
OpenClaw 快速接入QQ!1分钟拥有你的专属智能体 - 王几行XING的文章 - 知乎
https://zhuanlan.zhihu.com/p/2014001985649657798