Linux下Docker PLEX开启Nvidia硬件加速
Linux下Docker PLEX开启Nvidia硬件加速

Linux下Docker PLEX开启Nvidia硬件加速

内容纲要

Linux下Docker PLEX开启Nvidia硬件加速

前言

入手了Plex pass,肯定要用上硬件加速,因为闲置了一台笔记本电脑拥有1060显卡,不用浪费了,打算在上面搭建Plex,使用docker-compose的方法安装,并配置硬件解码,虽然感觉并不难,但是要正确安装好显卡驱动,并配置Plex还是需要记录一下的。

如果你觉得很麻烦,建议直接在Linux上安装PLEX,如果你和我想使用Docker安装,就接着看。

环境

Ubuntu22.04

1.安装显卡驱动

如果你不知道有没有正确安装好显卡驱动

输入

nvidia-smi
Thu Mar  9 00:30:03 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   49C    P8     7W /  78W |     65MiB /  6144MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1275      G   /usr/lib/xorg/Xorg                 56MiB |
|    0   N/A  N/A      1677      G   /usr/bin/gnome-shell                6MiB |
+-----------------------------------------------------------------------------+

如果有上面的信息表示安装好了显卡驱动,就不需要安装了。

如果没有

建议全部卸载重装,方法如下:

sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get remove --purge '^libnvidia-.*'
sudo apt-get remove --purge '^cuda-.*'

安装之前,我们看看推荐的安装包

ubuntu-drivers devices

ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C60sv0000103Csd0000825Fbc03sc00i00
vendor   : NVIDIA Corporation
model    : GP106BM [GeForce GTX 1060 Mobile 6GB]
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : nvidia-driver-525 - third-party non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

可以看到推荐安装

driver   : nvidia-driver-525 - third-party non-free recommended

那我们直接安装

sudo apt install nvidia-driver-525

安装好之后重启服务器。

再次输入nvidia-smi查看是否成功安装。

2.安装 Nvidia Docker 工具包

安装 Nvidia Docker 工具包需要进行以下步骤:

  1. 安装 Nvidia Container Toolkit

    Nvidia Container Toolkit 是一个可以帮助 Docker 容器与 Nvidia GPU 交互的工具包。你可以按照官方文档进行安装:Nvidia Container Toolkit

    一般来说,你需要在命令行中输入以下命令:

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  2. 验证 Nvidia Docker 安装

    你可以运行以下命令来验证 Nvidia Docker 安装是否成功:

    docker run --gpus all nvidia/cuda:11.0-base nvidia-smi

    如果 Nvidia Docker 安装成功,你将能够看到一个 Nvidia 显卡的状态信息。

    注意:在运行该命令前,你需要使用 sudo usermod -aG docker $USER 命令将当前用户添加到 docker 用户组中,以便能够使用 docker 命令。

3.安装PLEX

创建docker-compose.yml文件

输入以下内容

---
version: "3.8"
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    environment:
      - PUID=1001
      - PGID=1001
      - VERSION=docker
      - PLEX_CLAIM=##CLAIM-TOKEN##
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
    volumes:
      - ./config:/config
      - /mnt/media/TV Shows:/tv
      - /mnt/media/Movies:/movies
      - /mnt/media/Music:/music
    restart: unless-stopped

注意替换##CLAIM-TOKEN##

保存

最后部署

docker-compose up -d

登录PLEX开启硬件加速。

截屏2023-03-09 0.43.30

播放一个电影,我们来到设置的面板。

如果成功,我们可以在设置,面板中看到hw的字样,代表开启了硬件加速。

截屏2023-03-09 0.48.34
如果想查看GPU的状态,可以安装nvtop和htop有点相似

sudo apt install nvtop

到此结束。

给予一个大佬的参考:

https://tizutech.com/plex-transcoding-with-docker-nvidia-gpu/

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注