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文件

输入以下内容

```yaml
---
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/

文章作者: tutu
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 TutuのBlog
技术相关 Linux软件 Server Ubuntu 教程
喜欢就支持一下吧