使用 Docker 搭建 Jellyfin 媒体服务

最近听说国产NAS操作系统飞牛OS刚出,闲来无事我也在家试着搭建了一下体验。整体使用感觉还是不错,不过官方应用商店里的应用版本偏旧,所以我决定借助 Docker 来安装一些最新应用。作为NAS的重要应用之一,媒体服务自然少不了 Jellyfin。下面记录下我搭建 Jellyfin 媒体服务器的详细过程,希望能对有需要的朋友有所帮助,也算是对自己的一次整理总结。

第一步:准备工作

以下条件均需满足:

已配置好 Docker Compose 环境

NAS 主机已经开启 SSH 并能正常连接

Docker 环境已配置(国内用户需要配置好国内镜像源,确保能顺利拉取镜像)

下面是一段安装 Docker 及 Docker Compose 的脚本(以 Ubuntu 为例),供大家参考:

1
2
3
4
5
6
7
8
9
10
11
12
# 更新软件包列表
sudo apt update -y

# 安装 Docker
sudo apt install -y docker.io

# 安装 Docker Compose
sudo apt install -y docker-compose

# 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

第二步:创建项目目录和必要的文件

为了更好地管理配置和数据,我在 NAS 上创建了一个 Jellyfin 项目目录。你可以根据自己的实际情况调整路径,下面的示例路径仅供参考:

1
2
3
4
5
6
7
8
# 创建用于存放配置和缓存的目录
mkdir -p /vol1/1000/test/jellyfin/config /vol1/1000/test/jellyfin/cache

# 创建 Docker Compose 专用目录(也可以存放docker-compose.yml文件)
mkdir -p /vol1/1000/test/jellyfin/docker-compose

# 进入 docker-compose 目录,创建 docker-compose.yml 文件
touch /vol1/1000/test/jellyfin/docker-compose/docker-compose.yml

第三步:编写 docker-compose.yml 文件

接下来编辑刚才创建的 docker-compose.yml 文件,内容如下。这里我采用端口映射方式,并挂载了配置、缓存以及媒体数据目录(媒体文件存放路径可根据实际情况修改)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "3.8"

services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
restart: unless-stopped
ports:
- "8096:8096" # 端口映射:宿主机8096端口映射到容器8096端口
volumes:
- /vol1/1000/test/jellyfin/config:/config
- /vol1/1000/test/jellyfin/cache:/cache
- /vol2/1000/media:/media/media # 媒体文件夹,根据实际情况修改
environment:
- TZ=Asia/Shanghai

这里需要注意几点:

  1. 媒体文件目录 /vol2/1000/media 请根据你存放媒体文件的实际路径进行调整。
  2. 使用了端口映射 8096:8096,这样你就可以通过 http://ipaddress:8096 来访问 Jellyfin。

第四步:启动 Jellyfin

编写好 docker-compose.yml 文件之后,进入该目录执行下面的命令启动 Jellyfin:

1
sudo docker-compose up -d

运行完成后,你可以使用以下命令查看容器运行状态:

1
sudo docker-compose ps

如果一切顺利,浏览器访问 http://ipaddress:8096 (具体取决于网络配置)即可看到 Jellyfin 的初始化界面。