Jellyfin 是一个自由软件媒体系统,让您能够控制媒体的管理和流式传输。它是专有软件Emby和Plex的替代方案,可通过多个应用程序从专用服务器向终端用户设备提供媒体服务。Jellyfin源自Emby 3.5.2版本,移植到.NET Core框架以实现全跨平台支持。无附加条件、无高级许可或功能限制,也无隐藏议程:由团队协作构建更优质的媒体解决方案。
LinuxServer.io团队提供的此镜像具有以下特点:
该镜像利用Docker manifest实现多平台支持,拉取lscr.io/linuxserver/jellyfin:latest即可自动获取适合您架构的镜像,也可通过标签指定特定架构。
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
| 标签 | 支持情况 | 描述 |
|---|---|---|
| latest | ✅ | Jellyfin稳定版本 |
| nightly | ✅ | Jellyfin夜间构建版本 |
Web界面可通过 http://<您的IP>:8096 访问。
更多信息请参考***文档:Jellyfin快速入门
Intel Quicksync硬件加速用户需将/dev/dri视频设备挂载到容器中,运行或创建容器时添加以下参数:
bash--device=/dev/dri:/dev/dri
容器会自动确保内部abc用户具有访问该设备的适当权限。
如需启用基于OpenCL的DV、HDR10和HLG色调映射,请参考:OpenCL-Intel mod
Nvidia硬件加速用户需在主机上安装Nvidia提供的容器运行时,安装说明:nvidia-docker
容器会自动添加必要的环境变量以利用主机GPU的所有功能。安装nvidia-docker后,需使用nvidia容器运行时重新创建容器:
bash--runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all
(NVIDIA_VISIBLE_DEVICES也可设置为特定GPU的UUID,可通过nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv命令获取)
Raspberry Pi MMAL/OpenMAX硬件加速用户需挂载/dev/vcsm和/dev/vchiq视频设备及系统OpenMax库,运行或创建容器时添加以下参数:
bash--device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib
Raspberry Pi V4L2硬件加速用户需挂载/dev/video1X设备,运行或创建容器时添加以下参数:
bash--device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12
yaml--- version: "2.1" services: jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 # 用户ID - PGID=1000 # 组ID - TZ=Etc/UTC # 时区 - JELLYFIN_PublishedServerUrl=192.168.0.5 # 可选,自动发现响应的域名或IP volumes: - /path/to/library:/config # Jellyfin数据存储位置 - /path/to/tvseries:/data/tvshows # 电视节目媒体目录 - /path/to/movies:/data/movies # 电影媒体目录 ports: - 8096:8096 # HTTP WebUI - 8920:8920 # 可选,HTTPS WebUI(需自行配置证书) - 7359:7359/udp # 可选,本地网络客户端发现 - 1900:1900/udp # 可选,DNLA和客户端使用的服务发现 restart: unless-stopped
bashdocker run -d \ --name=jellyfin \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e JELLYFIN_PublishedServerUrl=192.168.0.5 `# 可选` \ -p 8096:8096 \ -p 8920:8920 `# 可选` \ -p 7359:7359/udp `# 可选` \ -p 1900:1900/udp `# 可选` \ -v /path/to/library:/config \ -v /path/to/tvseries:/data/tvshows \ -v /path/to/movies:/data/movies \ --restart unless-stopped \ lscr.io/linuxserver/jellyfin:latest
容器通过运行时参数配置,格式为<外部>:<内部>。
| 参数 | 功能 |
|---|---|
-p 8096 | HTTP WebUI访问端口 |
-p 8920 | 可选,HTTPS WebUI访问端口(需自行配置证书) |
-p 7359/udp | 可选,允许客户端在本地网络发现Jellyfin |
-p 1900/udp | 可选,DNLA和客户端使用的服务发现端口 |
| 参数 | 功能 |
|---|---|
-e PUID=1000 | 用户ID,详见下方用户/组ID说明 |
-e PGID=1000 | 组ID,详见下方用户/组ID说明 |
-e TZ=Etc/UTC | 指定时区,参考时区列表 |
-e JELLYFIN_PublishedServerUrl=192.168.0.5 | 设置自动发现响应的域名或IP地址 |
| 参数 | 功能 |
|---|---|
-v /config | Jellyfin数据存储位置,大型媒体库可能需要50GB以上空间 |
-v /data/tvshows | 媒体文件目录,可添加多个,如/data/movies、/data/music等 |
-v /data/movies | 媒体文件目录,可添加多个,如/data/movies、/data/tv等 |
可通过FILE__前缀从文件加载环境变量:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
上述命令会将MYVAR环境变量设置为/run/secrets/mysecretvariable文件的内容。
可通过-e UMASK=022覆盖容器内服务的默认umask设置。注意umask是权限减法而非加法,详情参考umask说明。
***文档中提到的其他端口可用于自动发现:
1900/udp):客户端自动发现和DNLA功能所需,需在本地子网7359/udp):客户端发送"Who is Jellyfin Server?"广播获取服务器信息更多环境变量配置参考***文档。
使用卷映射(-v)时,主机与容器可能出现权限问题。通过指定PUID和PGID可避免此问题,确保主机卷目录所有者与指定的用户/组ID一致。
通过以下命令获取当前用户的PUID和PGID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
可通过Docker Mods扩展容器功能:
容器内shell访问:
bashdocker exec -it jellyfin /bin/bash
实时查看容器日志:
bashdocker logs -f jellyfin
查看容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' jellyfin
查看镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/jellyfin:latest
大部分镜像为静态版本,需更新镜像并重建容器以更新应用。
更新镜像:
bash# 更新所有镜像 docker-compose pull # 仅更新jellyfin镜像 docker-compose pull jellyfin
更新容器:
bash# 更新所有容器 docker-compose up -d # 仅更新jellyfin容器 docker-compose up -d jellyfin
清理旧镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/jellyfin:latest
停止并删除当前容器:
bashdocker stop jellyfin docker rm jellyfin
使用相同参数重建容器(配置存储在/config卷中,会保留设置)
仅在忘记原始参数时使用:
bashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once jellyfin
如需本地修改或开发:
bashgit clone [***] cd docker-jellyfin docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/jellyfin:latest .
在x86_64硬件上构建ARM变体:
bashdocker run --rm --privileged multiarch/qemu-user-static:register --reset docker build -f Dockerfile.aarch64 -t lscr.io/linuxserver/jellyfin:arm64v8-latest .
bionic标签UMASK_SET,改用baseimage的UMASK/dev/vc-mem替换为/dev/vcsm/config下)来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429