前言
你是否也曾面临NAS硬盘空间告急的窘境?是否希望将海量的影音收藏存放在容量几乎无限的云端,同时又能享受如本地般流畅、精美的Jellyfin海报墙和播放体验?本教程将带你走过一段激动人心的探索之旅,最终我们将搭建一套稳定、可靠、全自动的云端媒体中心。
方案架构
我们将使用三个核心的Docker容器协同工作,各司其职,完美配合:
- Openlist (翻译官):负责连接您的云盘(本例中为天翼云盘),并提供一个标准的WebDAV服务。
- Rclone (搬运工):负责连接Openlist的WebDAV,并将云盘文件以高性能的VFS缓存模式,“搬运”并挂载到NAS的一个本地文件夹上。
- Jellyfin (播放器):负责读取Rclone准备好的文件,整理成漂亮的海报墙,并提供强大的硬解播放服务。
数据流: [天翼云盘] -> [Openlist容器] -> [Rclone容器] -> [NAS本地文件夹] -> [Jellyfin容器]
准备工作
在开始之前,请确保您已具备:
- 一台可以正常运行Docker的群晖NAS(或其他Linux系统的NAS)。
- 已安装好Docker套件(或在群晖上叫Container Manager)。
- 已开启SSH功能,并能以root用户身份登录。
- 一个云盘账号(本例为天翼云盘)。
第一阶段:在群晖上准备“基建”环境
这一步的目标是为我们的Docker容器准备好所有需要的文件夹和系统环境。
步骤 1.1:创建所需文件夹
我们需要创建用于存放各个容器配置数据和挂载点的文件夹。请通过SSH登录NAS,以root用户执行以下命令:
# 创建 rclone 配置文件存放目录 sudo mkdir -p /volume1/docker/rclone/config # 创建 rclone 挂载点目录 (云盘文件将出现在这里) sudo mkdir -p /volume1/rclone_mount # 创建 Jellyfin 配置文件和缓存目录 sudo mkdir -p /volume1/docker/jellyfin/config sudo mkdir -p /volume1/docker/jellyfin/cache # 创建 Openlist 配置文件目录 sudo mkdir -p /volume1/docker/openlist/data # (可选) 创建一个NAS本地电影文件夹,用于混合媒体库 sudo mkdir -p /volume1/Local_Movies
步骤 1.2:设置文件夹权限
为了避免后续Docker容器因权限不足而无法读写,我们赋予这些文件夹通用的权限。
sudo chmod 777 /volume1/docker/rclone/config sudo chmod 777 /volume1/rclone_mount sudo chmod 777 /volume1/docker/openlist/data sudo chmod 777 /volume1/Local_Movies
步骤 1.3:配置“共享挂载”并设置为开机自启
这是让Rclone容器能正常进行FUSE挂载的关键一步。
- 临时生效:在SSH中执行一次以下命令,让设置在当前立刻生效。
sudo mount --make-shared /volume1
2.永久生效:为了让NAS重启后这个设置依然有效,我们需要创建一个开机任务。
- 进入群晖的 控制面板 -> 任务计划。
- 点击 新增 -> 触发的任务 -> 用户自定义的脚本。
- 常规 标签页:
- 任务名称:
Enable Shared Mount for Docker - 用户账号:
root - 事件:
开机
- 任务名称:
- 任务设置 标签页:
- 在脚本框内输入:
mount --make-shared /volume1
- 在脚本框内输入:
- 保存任务。
第二阶段:部署 Openlist 容器 (翻译官)
步骤 2.1:启动 Openlist 容器
在SSH中执行以下命令来启动Openlist。
docker run -d \ --name openlist \ --restart=unless-stopped \ -v /volume1/docker/openlist/data:/opt/openlist/data \ -p 5244:5244 \ ghcr.io/openlistteam/openlist:latest
步骤 2.2:在 Openlist 中配置天翼云盘
- 在浏览器中访问
http://您的NAS_IP:5244。 - 首次访问会要求设置管理员密码,请设置一个您记得住的密码。
- 登录后,进入 存储 -> 添加。
- 驱动选择 天翼云盘,然后按照提示输入您的账号信息完成添加。
- 验证:添加成功后,您应该能在Openlist的文件管理界面看到您天翼云盘里的文件。记下您登录Openlist的用户名和密码,下一步会用到。
第三阶段:部署 Rclone 容器 (搬运工)
步骤 3.1:生成 Rclone 配置文件
我们将在一个临时的rclone容器内,以交互模式生成配置文件。
docker run --rm -it \ -v /volume1/docker/rclone/config:/config/rclone \ rclone/rclone \ config
进入向导后,请按照以下步骤操作:
n) New remote- name>
tyyunpan - Storage>
webdav - url>
http://您的NAS_IP:5244/dav/ - vendor>
other(直接按回车) - user> 您Openlist的用户名
- pass>
y,然后输入并确认您Openlist的密码 - 之后一路按回车接受默认选项,直到最后看到
e/n/d/r/c/s/q>菜单,输入q保存并退出。
步骤 3.2:验证 Rclone 配置
- 检查文件是否生成:
ls -l /volume1/docker/rclone/config/
预期结果:应看到 rclone.conf 文件。
2.测试连接是否正常:
docker run --rm -it -v /volume1/docker/rclone/config:/config/rclone rclone/rclone lsd tyyunpan:
预期结果:应看到 天翼云盘 目录。
步骤 3.3:启动 Rclone 永久挂载容器
这是核心步骤之一,启动一个在后台持续运行的rclone容器。
sudo docker run -d \
--name rclone-mount \
--restart unless-stopped \
--privileged \
--cap-add SYS_ADMIN \
--device /dev/fuse \
-v /volume1/docker/rclone/config:/config/rclone \
-v /volume1/rclone_mount:/data:rshared \
rclone/rclone \
mount tyyunpan:/天翼云盘 /data \
--allow-other \
--allow-non-empty \
--dir-cache-time 5m \
--vfs-cache-mode minimal \
--vfs-cache-max-size 20G \
--buffer-size 32M \
--vfs-read-chunk-size 16M \
--vfs-read-chunk-size-limit 1G
验证:等待一分钟后,执行 ls -lh /volume1/rclone_mount,应该能看到您云盘里的文件列表。
第四阶段:部署 Jellyfin 容器 (播放器)
步骤 4.1:启动 Jellyfin 容器
现在,我们启动最终的Jellyfin容器,并同时连接到云盘和本地的媒体文件夹。
# 如果已存在旧的Jellyfin容器,请先停止并删除 # sudo docker stop jellyfin # sudo docker rm jellyfin # 启动新的Jellyfin容器 sudo docker run -d \ --name jellyfin \ --restart=unless-stopped \ -p 8096:8096 \ \ # --- 永久化数据映射 --- -v /volume1/docker/jellyfin/config:/config \ -v /volume1/docker/jellyfin/cache:/cache \ \ # --- 核心媒体库映射 --- -v "/volume1/rclone_mount":"/media/cloud" \ -v "/volume1/Local_Movies":"/media/local" \ \ # --- 硬件加速相关设置 --- --privileged \ --device /dev/dri \ --device /dev/dma_heap \ --device /dev/mali0 \ --device /dev/rga \ --device /dev/mpp_service \ --device /dev/iep \ --device /dev/mpp-service \ --device /dev/vpu_service \ --device /dev/vpu-service \ --device /dev/hevc_service \ --device /dev/hevc-service \ --device /dev/rkvdec \ --device /dev/rkvenc \ --device /dev/vepu \ --device /dev/h265e \ \ # --- 使用的镜像 --- nyanmisaka/jellyfin:latest-rockchip
步骤 4.2:在 Jellyfin 中配置媒体库
- 登录 Jellyfin 网页界面。
- 进入 控制台 -> 媒体库。
- 编辑或新增您的电影库,在“文件夹”部分,同时添加容器内部的两个路径:
/media/cloud(指向您的云盘电影)/media/local(指向您的本地电影)
- 保存后,执行“扫描媒体库”。
结语
恭喜您!至此,您已经拥有了一个功能完整、稳定可靠、开机自启的自动化云端媒体中心。无论是扫描新媒体,还是日常播放,都应该能稳定运行。

