从崩溃到搞定!我是如何把飞牛OpenList完整迁移到Docker的
上次写OPENLIST飞牛应用中心安装和docker compose两安装方式的教程的时候,最后把自己配置好的OPENLIST给搞崩了,折腾到半夜1点才整好。
不过这次的折腾过程得到了不少经验,我准备把这次的修复过程和学习到的经验做次分享,把docker compose和应用中心安装的工具在系统中存在的区别、以及如何让二者可相互转换并且不影响之前的配置给说透,让大家以后遇到类似问题不光可以按着别人的教程解决,还能理解LINUX系统中应用安装和配置文件调用的底层逻辑,做到一通百通。
一、背景:我的飞牛OS中的OPENLIST最初是在应用中心里安装的,上次写部署教程的时候为了演示两种不同的安装方式,并且最后我想留下docker版的openlist,所以我当时操作的流程如下:
卸载应用中心的OPENLIST——重新安装应用中心版本——再卸载应用中心版本——安装docker compose版本——将应用中心版的config.json文件和data.db文件转移到docker版本对应文件夹中,实现无损平移,想像的很简单很美好,但是没想到出了乱七八糟的问题差点整蒙。
二、出现的问题及排查过程:在我写完应用中心安装openlist这一步的时候,进入工具页面,发现我以前挂载好的网盘和设置都没有丢失。
卸载但保留配置文件,再安装所有配置都在当时想到应该是config.json我给保留着的原因,要想知道这是什么原理那先了解一下config.json 文件:
config.json 是 linux系统中各种软件的核心配置文件,用于存储程序运行所需的基础参数,包括访问端口、日志路径、数据库位置、站点标题等。
简单说,它决定了安装的软件以什么端口启动、文件存在哪里、界面如何显示,是整个程序正常运行的基础配置文件,修改后需要重启服务才能生效。
所以将卸载掉的工具重新安装在原有的目录中,不改变路径的情况下所有的配置都得以保留,不用再从头到尾的配置一篇,这点真是非常好。也就是说如果你现有的NAS是用来练手的,后续准备换新设备,又不想把各种工具复杂的设置全部重新整一次,那就把docker的安装时生成的文件夹都给备份下来,理论上就可以做到无缝衔接。
到这里我就开始随性起来,卸载了应用中心版本,写好了docker-compose.yml的安装方法后,我就直接将之前的config.json文件直接复制到了docker版本文件夹中。
注:这里又要说明一下,飞牛的应用中心安装的软件分为两种。1.应用图标没有docker的标志,如下图的openlist。

这种是原生系统应用或者用官方或飞牛官方打包的直装版,自带桌面入口,与 Docker 独立,应用相关配置文件安装路径在@appdata中。
飞牛应用中心安装的软件数据存放在位置
应用图标有docker标志,如下图的QWRT。
飞牛应用中心里的docker版本应用这种就是标准的docker版本,需 Docker 运行,在 Docker 中管理,应用相关配置文件安装在你yml文件里写着,例如这次安装的openlist就在/vol1/1000/tools中。
docker版应用数据映射在你自定义文件夹下当时打开这个配置文件想看一下里面写了什么东西,如下图:这里看到一行调用的地址后面写着data.db,估摸着这里应该有挂载网盘的设置和记录,打开一看,确实如此,那就应该把这个文件一并复制过去(下面还有应用的打开端口5544)。
飞牛应用安装的openlist配置文件内容打开data.db文件查看,里面虽然有很多乱码,但是也能看出是网盘挂载的配置信息。
data.db文件问题1:一切就绪,重启服务准备打开,想着应该直接看到好的结果,谁知道服务一直无法正常启动,打开日志看到“Failed to write to log, open /vol1/@appdata/OpenList/data/log/log.log: operation not permitted”,才发现调用data.db的路径没有改。所以这是第一个要注意的点:要修改config.json里面的路径与你安装的应用路径保持一致,否则无效!
解决方式:以此次安装的openlist为例,在yml文件中可以看到是“/opt/openlist/data”,那就把config文件里的路径全都修改为这个就行了。
yml文件中可以看到真实存放路径问题2:安装应用版openlist我使用的端口号是5544(上面的config文件可以看到),但是docker版本用的是5244,这就导致我的手机爆米花、飞牛影视、电视上爆米花、还有家人手机上的影视软件都要修改一遍配置,否则就无法正常使用了,所以还是决定给改成5544就省心了(这样才是无缝切换嘛)。
解决方式:在docker——容器——点击openlist右侧详情按钮

点击设置,找到端口设置(这里是我修改后的),点图标右侧的停止按钮就可以修改了。

把前后两个都改为了5544,保存——点击启动即可。

这里顺便解释一下两个“5544”是什么意思:前面的“5544”是映射端口号,意思就是这个应用本身的端口不管是多少,打开它的网址后面跟的端口号都要是这个,受到docker-compose.yml填写的限制,如果和这里的映射端口号不一致也会报错。

后面的“5544”是应用本身在部署时找系统申请监听的端口号,也是就应用真实的端口号,这里是受到config.json文件里的http_port这一行的限制,必须一致。

最后验证:尝试进入应用看看之前的配置是都回来了,问题全部解决。
迁移成功,全部恢复正常这次的内容比较复杂,里面一些概念很容易看着看着就晕了,但我写的很细,跟着我的思路慢慢看就可以理解,我也是在边用边学中成长,吃透这篇文章将对你了解NAS系统乃至LINUX系统的底层逻辑都是有帮助的,欢迎评论区探讨。
下一期再写openlist如何设置,挂载上你的网盘,由浅入深的来,先把基础工作做好了,最后再来享受成果,教大家实现NAS+openlist+WebDAV+飞牛影视/网易爆米花,直连播放STRM流文件影片,最终实现不用下载到本地,还不用通过NAS中转数据,同样享受高清影片。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

LuckPPL
校验提示文案
LuckPPL
校验提示文案