2026年 1Panel 安装 OpenClaw Docker 版完整教程(含踩坑)
以前用 1Panel 安装 OpenClaw(那时候还叫 Moltbot/Clawdbt)的教程我写过一篇,但那篇是旧版本,改名 OpenClaw 之后流程改了不少,加上 1Panel 应用商店现在已经有官方镜像,踩坑点也不一样了。这篇重新写一遍,从头到尾把 2026 年最新的 Docker 安装流程记一下。
先说我的结论:1Panel 应用商店装 OpenClaw 是目前最省事的 Docker 方案,不用手写 docker-compose,点几下就完事——但有几个坑必须提前说清楚,不然你大概率安装完进不去,或者装完不知道怎么对接 Telegram。
准备工作:你需要什么
- 一台 VPS:内存至少 2GB(推荐 4GB+),系统 Debian/Ubuntu 均可
- 1Panel 已安装:没装过的先装 1Panel,这是前提
- 模型 API Key:DeepSeek、Qwen、OpenAI、Gemini 等均可,国内用 DeepSeek 最方便
- 开放 18789 端口:防火墙要放行,否则面板打不开
内存为什么至少 2GB?因为 OpenClaw 镜像本身 1.4GB,启动时还需要 Node.js 跑起来,1GB 机器跑到一半会 OOM(exit 137)。
第一步:1Panel 应用商店搜索安装
登录 1Panel 后台,左侧菜单点「应用商店」,搜索框输入 OpenClaw,找到应用卡片点安装。

配置参数说明:
- 名称:默认 openclaw,不用改
- 版本:选 latest 或当前最新版本号(写这篇时是 2026.3.2-beta)
- WebUI 端口:默认 18789,如果端口被占用才需要改
- Bridge 端口:默认 18790,保持不动
- 模型提供商:下拉选择,比如 deepseek
- 模型:填
deepseek/deepseek-chat(格式是提供商/模型ID) - API Key:去对应平台申请的 sk-xxxx
- Token / 令牌:⚠️ 先不填,安装完再拿(见第二步)
- 端口外部访问:⚠️ 必须勾选,否则外网访问不了面板
填好点确认,等它跑完——镜像 1.4GB,拉取时间取决于你的网速,慢的话等个 3-5 分钟很正常。
踩坑一:镜像拉取超时怎么办
这是目前最常见的报错,错误信息类似:
拉取镜像超时,请尝试增加镜像加速或者更换其他镜像加速
Error response from daemon: failed to resolve reference "docker.io/1panel/openclaw:2026.x.x"原因是 Docker Hub 在国内访问不稳定。解决方法有两个:
方法 1(推荐):在 1Panel 里配置 Docker 镜像加速
- 1Panel → 容器 → 配置 → 镜像仓库
- 添加镜像加速地址,可以用:
https://docker.m.daocloud.io或https://dockerpull.org - 保存后重试安装
方法 2:手动指定预拉镜像
在 1Panel 终端里先手动拉取:
docker pull ghcr.io/openclaw/openclaw:latest
docker tag ghcr.io/openclaw/openclaw:latest 1panel/openclaw:latestghcr.io(GitHub Container Registry)通常比 Docker Hub 稳定,拉完再从应用商店安装就不会超时了。
第二步:安装完后获取 Token
安装完成后,不能直接用 IP:18789 访问,必须带 Token,否则会被拦截。Token 的位置在这里:
- 1Panel → 已安装应用 → 找到 OpenClaw → 点「文件夹」图标进入数据目录
- 进入
data/conf/文件夹,点开openclaw.json - 找到
"gateway": { "token": "xxxxx" },复制这串 token
拿到 token 后,访问地址格式是:
http://你的VPS_IP:18789?token=你的token建议把这个带 token 的完整地址收藏到浏览器书签,下次直接点开就行。
另外回到 1Panel 已安装应用页面,点「参数」把 token 填进去,可以在面板里直接跳转。
踩坑二:内存不够导致 exit 137
如果你的 VPS 是 1GB 内存,大概率会出现容器启动失败,日志里看到 exit code 137。这是 OOM(内存溢出),不是代码 bug,根本解决方案只有一个:换内存更大的机器或者加 swap。
加 swap 的方法(Debian/Ubuntu):
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab2GB swap 加上 1GB 内存,勉强能跑,但不建议长期这么用,性能会比较差。
第三步:对接 Telegram(让它在 Telegram 里回你)
装好只是第一步,真正好用是在 Telegram 里直接对话。配置步骤:
- 1Panel → 已安装应用 → OpenClaw → 点顶部「进入安装目录」
- 点文件列表顶部的「终端」按钮,打开网页终端
- 输入以下命令:
docker compose -f docker-compose-cli.yml run --rm openclaw-cli channels add- 用上下键选择 Telegram
- 粘贴你从 @BotFather 申请的 Bot Token
- 完成后重启容器:1Panel → 已安装应用 → OpenClaw → 点重启
重启后打开 Telegram,找到你的 Bot 发条消息测试一下。
没有 Telegram Bot 的话,去找 @BotFather,发 /newbot,起个名字,就能拿到 token。具体步骤可以看这篇,里面有图文说明。
踩坑三:更换模型或修改 API Key
装完发现模型选错了,或者 API Key 填错了,不用重装,直接改配置文件:
- 进入应用数据目录 →
data/conf/openclaw.json - 找到对应字段修改(模型、API key 等)
- 保存后重启容器
或者用命令行方式:
docker compose -f docker-compose-cli.yml run --rm openclaw-cli models set deepseek/deepseek-chat具体命令用法可以看OpenClaw 常用命令大全,那里整理了所有常用操作。
Docker Compose 直装方式(不用 1Panel 的方案)
如果你没有 1Panel,直接用 Docker Compose 也完全可以,官方文档提供了 docker-setup.sh 脚本:
git clone https://github.com/openclaw/openclaw
cd openclaw
# 用官方预构建镜像(推荐,不用本地编译)
export OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest
./docker-setup.sh脚本会自动构建或拉取镜像、跑 onboarding 向导、写入配置、启动服务。完成后访问 http://127.0.0.1:18789。
和 1Panel 方案的区别:
- 1Panel 有 Web 界面管理,操作更直观,适合不熟悉命令行的人
- Docker Compose 直装更灵活,适合喜欢自己控制配置的人
- 两者底层都是 Docker,没有本质区别
Docker 方案 vs 宿主机直装,怎么选
我自己最后从 Docker 换回了宿主机直装,主要原因是 OpenClaw 需要调用各种工具(文件读写、浏览器控制、执行命令),Docker 的隔离在某些场景下会变成麻烦。但 Docker 也有它的优点:
| Docker(1Panel / Compose) | 宿主机直装 | |
|---|---|---|
| 安装难度 | 低,点几下 | 中,需要命令行 |
| 隔离性 | 高,不污染系统 | 低 |
| 工具调用 | 需要挂载配置 | 直接用,更顺 |
| 排错 | 稍麻烦(看容器日志) | 直接看系统日志 |
| 内存占用 | 略高(镜像本身 1.4GB) | 正常 |
| 适合谁 | 轻度使用 / 想快速上手 | 深度折腾 / 需要工具调用 |
宿主机直装的详细步骤可以看这篇文章,里面有完整流程对比。
常见问题
Q:装完显示 Waiting for gateway,一直转圈怎么办?
多半是内存不足或者端口没放行。先查容器日志(1Panel → 容器 → OpenClaw → 日志),再检查防火墙是否放行了 18789。
Q:卸载后重装,显示端口被占用?
旧容器可能没完全清理。1Panel → 容器 → 找到旧的 openclaw 容器 → 删除,再重装。
Q:装完 Telegram 没有反应?
先确认 channels add 命令跑完没有报错,再确认容器重启了。如果还没反应,检查 Bot Token 是否填错(复制时有没有多空格)。
Q:可以同时跑多个 OpenClaw 实例吗?
可以,改端口就行,但每个实例需要独立的配置目录和 Bot Token。
如果你在安装过程中遇到其他报错,可以参考我之前整理的OpenClaw 安装报错完全解决手册,里面收录了常见错误的处理方法。
Member discussion