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 工具包需要进行以下步骤:
-
安装 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
-
验证 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开启硬件加速。
播放一个电影,我们来到设置的面板。
如果成功,我们可以在设置,面板中看到hw的字样,代表开启了硬件加速。
如果想查看GPU的状态,可以安装nvtop和htop有点相似
sudo apt install nvtop
到此结束。
给予一个大佬的参考:
https://tizutech.com/plex-transcoding-with-docker-nvidia-gpu/