UNRAID中如何升级Jellyfin 12.2 和docker更换超快的国内镜像源
首先不得不说明如果你原有jellyfin版本过低,需要先将jellyfin先升级到10.10.7版本。
如何升级到jellyfin 10.10.7版的具体步骤取决于你现目前的安装方式,如(Docker、Windows、Linux 原生安装等)。因为jellyfin10.10.7版是通往jellyfin 12.0.0以上版本的关键中间版,且官方要求升级起点必须在 10.9.11 以上,因此确保平稳过渡尤为重要。

以下针对不同环境记录整理一下升级指南:
升级前必读:核心注意事项
1.备份数据:无论我们以何种方式升级,升级前务必备份config (配置)和data/library
(数据库)目录。如果过程中升级失败,这是回退唯一办法。
2.检查当前版本:确认你当前的版本至少是 10.9.11。如果低于此版本,请先升级到 10.9.11 或更高版本,再执行以下步骤。
3.插件兼容性:部分旧插件可能在 10.10.x 系列中出现兼容性问题,建议记录已安装的插件,升级后如有异常可暂时禁用排查。
场景一:Docker 环境(NAS/ Linux)
这是最常见的部署方式有(群晖、Unraid、TrueNAS 等)。
1.升级前停止旧容器
在终端或 Docker 管理界面中停止正在运行的 Jellyfin 容器。
我这里是进入的终端如图所示

docker stop jellyfin 此命令是停止正在运行的jellyfin
2. 根据需求拉取指定版本镜像
这里我们不要直接使用 latest 标签(linuxserver/jellyfin默认拉取latest标签版),而是明确指定 10.10.7 版本,以确保准确性。
docker pull Linuxserverjellyfin/jellyfin:10.10.7
注:如果原来使用的是第三方优化版镜像(如 nyanmisaka/jellyfin),请去该项目的发布页确认是否有对应的 10.10.7 标签,通常标签格式类似 10.10.7 或 10.10.7-amd64。
如果镜像拉取过于缓慢,请考虑更换超快的国内docker镜像
话不多说上sudo vi /etc/docker/daemon.json 这条命令是用 vi 编辑器打开 Docker 的配置文件 /etc/docker/daemon.json,用于修改 Docker 守护进程的配置,比如镜像加速、日志限制、存储路径等。如果文件不存在,vi 会新建一个空文件,保存后即生效。
直接vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://doublezonline.cloud",
"https://docker.fxxk.dedyn.io"
]
}
之后,esc取消,:wq保存退出。我这里cat 查看一下如图所示

如果不想写如这么多,就留中国科学技术大学这行
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
]
}即可。
记得最后执行一下 sudo service docker restart 。
3.删除旧容器(保留数据卷)
docker rm jellyfin
4.重新运行容器
这里我们需要使用与之前完全相同的启动命令(包括端口映射、设备直通、环境变量和数据卷挂载路径)。
docker run -d \
--name='jellyfin' \
--net='host' \
-e TZ="Asia/Shanghai" \
-e HOST_OS="Unraid" \
-e HOST_HOSTNAME="TUCHH" \
-e HOST_CONTAINERNAME="jellyfin" \
-e 'TCP_PORT_8096'='8096' \
-e 'PUID'='1000' \
-e 'PGID'='1000' \
-l net.unraid.docker.managed=dockerman \
-l net.unraid.docker.webui='http://[IP]:[PORT:8096]/' \
-l net.unraid.docker.icon='https://hotio.dev/webhook-avatars/jellyfin.png' \
-v '/mnt/user/appdata/jellyfin':'/config':'rw' \
-v '/mnt/user/Tuchh/tv/':'/tvshows':'rw' \
-v '/mnt/user/Tuchh/Video/':'/movies':'rw' \
-v '/mnt/user/appdata/jellyfin/fonts/':'/usr/share/fonts/TTF':'rw' \
--device='/dev/dri' \
--restart=unless-stopped \
linuxserver/jellyfin:10.10.7
请根据你之前的实际启动参数调整上述命令。
5.验证jellyfin版本
访问 Jellyfin Web 界面,进入 控制台 -> 仪表板,确认版本号显示为 10.10.7。
小提示:如果这里有朋友遇到访问验证过程中出现用户名密码对如何处理。
方案 A:重置初始化向导(Unraid,推荐,直接新建管理员账号)
媒体文件不动,观看记录、收藏会丢失,我的媒体库路径 /movies/tvshows 保留
docker stop jellyfin 同样先停止正在运行的jellyfin
修改 /mnt/user/appdata/jellyfin/system.xml找到:true
改成false
保存文件,启动容器
docker start jellyfin 启动jellyfin
浏览器访问 http://UnraidIP:8096,会弹出全新安装向导,自己填写新管理员用户名 + 密码。
方案 B:sqlite 清空管理员密码(数据库必须还能正常打开,保留观看记录)
docker stop jellyfincp /mnt/user/appdata/jellyfin/data/jellyfin.db /mnt/user/appdata/jellyfin/data/jellyfin.db.baksqlite3 /mnt/user/appdata/jellyfin/data/jellyfin.db
SELECT Id, Username FROM Users;
拿到管理员 UserId,执行
UPDATE Users SET Password = NULL WHERE Id='这里粘贴你的用户ID';.quit
启动容器,登录页面用户名填好,密码留空直接登录,进去立刻改密码。
注意:如果你的数据库有 ActivityLog 表缺失损坏,如果执行这条 SQL 报错,说明数据库已经无法读写,方案 B 不可用,只能用方案 A。
方案 C:使用密码重置 PIN(数据库修复成功后才可用)
就是你之前拿到的 passwordresetxxxx.json,读取 PIN,局域网网页提交重置;数据库损坏状态下,这个功能直接失效。
场景二:Windows 系统
下载安装包:
前往 Jellyfin GitHub Releases 页面或官网下载中心。
找到 Jellyfin Server 10.10.7 的 Windows 安装包(通常为 .exe 或 .msi 文件)。
停止服务:
如果 Jellyfin 作为服务运行,请在任务管理器或服务管理器中停止 Jellyfin Server 服务。
如果在托盘运行,右键点击托盘图标选择退出。
运行安装程序:
双击下载的安装包。
安装程序通常会自动检测旧版本并进行覆盖升级,配置和数据通常会保留。
建议:为了安全起见,手动复制 C:\ProgramData\Jellyfin\Server 目录到其他位置作为备份。
重启服务:
安装完成后,启动 Jellyfin 服务。
浏览器访问 http://localhost:8096 检查版本。
场景三:Linux 原生安装 (Debian/Ubuntu/CentOS)
Debian/Ubuntu (APT)
1.更新仓库索引:
sudo apt update
2.安装指定版本:
如果默认源中已有 10.10.7,直接升级:
sudo apt install jellyfin=10.10.7-1
注意:版本号后缀可能因架构而异,可使用 apt-cache madison jellyfin 查看可用版本。
3.重启服务:
sudo systemctl restart jellyfin
CentOS/RHEL (YUM/DNF)
1.查看可用版本:
yum list available jellyfin --showduplicates
2.安装指定版本:
sudo yum install jellyfin-10.10.7-1.el7.x86_64 # 示例,具体包名请根据列表调整
3.重启服务:
sudo systemctl restart jellyfin
升级完成后检查清单
1.版本确认:确保界面显示为 10.10.7。
2.硬件加速测试:播放一个需要转码的视频,检查 CPU/GPU 占用是否正常,确认硬解驱动未丢失。
3.插件状态:进入 控制台 -> 插件,检查是否有插件报错或需要更新。
4.下一步计划:
- 如果你最终目标是升级到 Jellyfin 12.2,那么在确认 10.10.7 运行稳定后,你可以继续从 10.10.7 升级到 10.11.x(推荐 10.11.11),然后再升级到 12.2。
- 切勿直接从 10.10.7 跳到 12.0,必须经过 10.11.x 这一环(除非官方后续更新了直接迁移路径,但目前标准路径需经过 10.11)。
如果在升级过程中遇到数据库锁定或启动失败,请恢复之前备份的 config 和 data 文件夹,并检查日志文件(通常位于 log 目录下)以获取错误详情。
如过程中还遇到
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
该问题到本质是docker daemon无法与docker通信,原因可能有以下几个:
1.docker进程没有起来:sudo systemctl restart docker
2.daemon守护进程没有配置成功: sudo systemctl daemon-reload;sudo systemctl restart docker
3./var/run/docker.sock访问权限受限制:sudo chown your-username /var/run/docker.sock
温馨提示:本次记录属笔者亲身经历过程并记载于此,本人不会因为您或任何人看了本升级过程记录之后自行操作造成设备损坏而负相应责任,本人力所能及范围内对求助者给予帮助和技术支持,感谢您的来访,转载还请注明出处,谢谢。
升级jellyfin12.2后还会遇到
由于致命的播放器错误,播放失败。且看下回分解。


