在Docker容器中运行Jellyfin

准备工作

运行

使用Docker Compose运行

Docker Compose使用较为简易,使用如下 docker-compose.yml 配置:

配置 docker-compose.yml
version: "3"
services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    network_mode: host # 推荐使用 host 模式,方便局域网发现和高吞吐
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - /path/to/jellyfin/config:/config
      - /path/to/jellyfin/cache:/cache
      - /your/media/movies:/media/movies # 挂载你的电影目录
    # 核心配置:透传 GPU 
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all # 或者指定特定卡的 UUID,比如指定你的 P10 专门负责转码
              capabilities: [gpu, video] # 必须包含 video 权限,否则无法硬解
    restart: unless-stopped

使用Docker运行

  • Docker CLI命令行运行启动:

采用 docker run
DIR=/home/admin/docs/jellyfin

mkdir -p $DIR/conig $DIR/cache $DIR/media

docker run -d \
  --name jellyfin \
  --net=host \
  --gpus all \
  -v $DIR/config:/config \
  -v $DIR/cache:/cache \
  -v $DIR/media:/media \
  --restart unless-stopped \
  jellyfin/jellyfin

这里使用了:

  • --net=host 表示直接容器内的服务端口直接绑定到host主机,这样就不需要一一写端口映射

  • -v $DIR/media:/media 将Host主机的一个 media 目录映射进容器,这个目录下将分别建立 movies / tvshows / musics / photos 子目录,这是因为剧集、歌曲等是多个内容归纳到一个入口,需要和电影区分开

备注

后续设置和使用参考 jellyfin_practice