之前写过一篇在甲骨文云搭建Telegram RSS机器人的教程,使用的是 RSS-to-Telegram-Bot 这个项目,通过 Easypanel 部署在 Docker 容器里。
搭建完之后,机器人用起来非常顺手——订阅管理、RSS推送一切正常。但有一个问题:每次服务器重启,所有的订阅设置就全部消失了,需要重新手动添加一遍。
一开始以为是机器人项目本身的问题,后来才发现——原来是自己在 Easypanel 上漏掉了一个关键步骤:没有设置 Volume 挂载(持久化存储)。
原因分析:Docker容器的无状态性
这是一个 Docker 的基础特性,但我这样的新手很容易踩坑。
Docker 容器本身是无状态的。
容器内部产生的数据(比如 RSS-to-Telegram-Bot 的订阅数据库文件),默认只保存在容器的可写层里。一旦容器停止、重启或被重建,这些数据就会随之消失。

要让数据在重启后依然保留,必须通过 Volume(卷) 或 Bind Mount(绑定挂载) 将容器内的数据目录映射到宿主机的持久化存储上。
Easypanel 提供了图形界面来配置这一点,但如果当初没有注意到,部署时就会跳过这一步。
解决方法:在Easypanel中添加Volume挂载
操作非常简单,进入 Easypanel 对应的 App,找到 「マウント(挂载)」 设置页面,按以下步骤添加一个 Volume Mount:
步骤
- 在 Easypanel 控制台,进入对应的 App(本例为
rss2tele) - 找到 Mounts(挂载) 部分
- 点击 「ボリュームマウントを追加(添加Volume挂载)」
- 填写如下配置:
| 字段 | 填写内容 |
|---|---|
| Volume名称 | rss2tele(自定义,建议与App同名方便识别) |
| 容器内路径 | /app/config |
- 点击保存,然后重新部署(Redeploy)该 App
如下图所示,正确配置后,挂载项会出现在列表中:

为什么是
/app/config?
RSS-to-Telegram-Bot 将订阅数据、配置文件等持久化内容默认存放在容器内的/app/config目录。将此目录挂载到 Volume,就能确保数据在容器重启后依然完好保留。
验证效果
配置完成并重新部署后,可以按以下方式验证:
- 在 Telegram 机器人中重新添加几个 RSS 订阅(
/sub命令) - 在 Easypanel 中手动重启该 App(或等待服务器重启)
- 重启完成后,对机器人发送
/list命令,确认订阅列表依然存在
如果订阅依然在,问题就彻底解决了。
总结:Easypanel部署Docker App的注意事项
| 检查项 | 说明 |
|---|---|
| ✅ 环境变量 | TOKEN 和 MANAGER 是否正确填写 |
| ✅ Volume挂载 | 数据目录是否已挂载到持久化Volume ← 本文的重点 |
| ✅ 重新部署 | 修改挂载配置后必须 Redeploy 才会生效 |
这个问题说小不小——因为表面上机器人运行完全正常,只有在重启后才会暴露,很容易让人以为是代码或配置问题,实际上只是忘了挂载 Volume 这一步。