之前写过一篇在甲骨文云搭建 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,找到「挂载(Mounts)」设置页面,按以下步骤添加一个 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 这一步。

:CasaOS-与轻量服务-1024x591.png.webp)

