ubuntu debian fnos 安装nvidia-container-toolkit让docker emby支持调用N卡转码

ubuntu debian fnos 安装nvidia-container-toolkit让docker emby支持调用N卡转码
内容目录

效果图

file

需求原因

最近在玩pve+fnos
发现飞牛影视还是没emby好用
emby应用中心直接安装不像docker那样可以环境变量设置代理方便刮削
但是docker部署又想直接调用n卡,所以需要安装 NVIDIA Container Toolki
最后实现后 因为fnos是debian 12魔改 所以ubuntu22.04 24.04 Debian12测试基本也通用


安装 NVIDIA Container Toolkit

✅ 一、添加 NVIDIA Container Toolkit 软件源并安装

基于 Debian 12 的系统,请按照以下步骤配置:

1. 添加 NVIDIA GPG 密钥

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

2. 添加官方源

cat <<EOF > /etc/apt/sources.list.d/nvidia-container-toolkit.list
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/amd64 /
EOF

3. 更新并安装工具包

sudo apt update
sudo apt install -y nvidia-container-toolkit

✅ 二、配置 Docker 使用 NVIDIA Runtime

安装完后执行:

sudo nvidia-ctk runtime configure --runtime=docker

然后重启 Docker:

sudo systemctl restart docker

✅ 三、验证 GPU 支持

现在再运行这个测试命令:

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

若能看到显卡信息(如 Quadro K2200),说明成功!

root@fn:~# docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
Fri May 16 05:50:57 2025       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.216.01             Driver Version: 535.216.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| 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  Quadro K2200                   On  | 00000000:00:10.0 Off |                  N/A |
| 42%   42C    P8               1W /  39W |      1MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

🔍 附加检查

如果还是失败,确认以下几点:

  • 驱动已安装且 nvidia-smi 正常;
  • /dev/nvidia0/dev/nvidia-uvm 等设备存在;
  • Docker 版本支持 GPU(推荐 ≥20.10);
  • 运行 nvidia-ctk 无报错。

fnos docker 启动emby

file
新建docker-compose项目如图操作
yaml配置如下

services:
  embyserver:
    image: amilys/embyserver
    container_name: amilys_embyserver
    runtime: nvidia
    network_mode: bridge
    privileged: true
    environment:
      - UID=0
      - GID=0
      - GIDLIST=0
      - TZ=Asia/Shanghai
      - http_proxy=http://192.168.0.251:10809
      - https_proxy=http://192.168.0.251:10809
      - no_proxy=localhost,127.0.0.1,::1,host.docker.internal,192.168.0.251,192.168.0.32 #不代理的ip
      - NVIDIA_VISIBLE_DEVICES=all             # 显示所有GPU(或指定具体GPU编号)
      - NVIDIA_DRIVER_CAPABILITIES=all         # 或 compute,video,utility 视需求而定
    volumes:
      - /vol1/1000/emby/config:/config
      - /var/apps/docker-xunlei/shares/xunlei/downloads:/data
    ports:
      - 8096:8096
    restart: unless-stopped

设置代理的作用是让emby刮削能力增强,根据自己的代理和端口自行设置,no_proxy设置不代理的地址
/vol1/1000/emby/config 自己文件管理 自己新建
/var/apps/docker-xunlei/shares/xunlei/downloads 是应用中心迅雷的下载路径 有其他目录自己映射
然后启动就可以享受docker 部署emby还能调用n卡解码了

Comments

No comments yet. Why don’t you start the discussion?

发表回复

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