root@debian:/mnt/kingston/frigate# docker inspect emby | grep -i runtime
"Runtime": "runc",
"CpuRealtimeRuntime": 0,
root@debian:/mnt/kingston/frigate#
完了,现在问题就非常清楚了:
"Runtime": "runc"
说明你当前的 Emby 容器 是用默认 Docker runtime(runc)启动的
没有使用 NVIDIA runtime → 容器无法访问 GPU
这也是为什么即便环境变量写了 NVIDIA_VISIBLE_DEVICES=all,Emby 也看不到硬件加速
💡 简单总结:
旧容器无法动态“开启 GPU”
必须重建容器,指定 --runtime=nvidia 才能让 NVENC 硬件转码生效
正确做法(命令行重建容器)
假设你的配置目录是 /mnt/config,媒体目录是 /mnt/media,端口保持默认:
docker stop emby
docker rm emby
docker run -d
--name emby
--runtime=nvidia
-e NVIDIA_VISIBLE_DEVICES=all
-e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
-e TZ=Asia/Shanghai
-p 8096:8096
-v /mnt/config:/config
-v /mnt/media:/media
emby/embyserver:beta
--runtime=nvidia ✅ 容器访问 GPU
环境变量 ✅ 控制 GPU 可见性和 NVENC 权限
是否可以修改,谢谢
services:
emby_1:
image: emby/embyserver:beta
container_name: emby_1
restart: unless-stopped
runtime: nvidia
environment:
TZ: Asia/Shanghai
GIDLIST: "0,0"
NVIDIA_DRIVER_CAPABILITIES: all
NVIDIA_VISIBLE_DEVICES: all
UID: "0"
GID: "0"
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG: en_US.UTF-8
HOME: /tmp
AMDGPU_IDS: /share/libdrm/amdgpu.ids
FONTCONFIG_PATH: /etc/fonts
LD_LIBRARY_PATH: /lib:/system
LIBVA_DRIVERS_PATH: /lib/dri
OCL_ICD_VENDORS: /etc/OpenCL/vendors
PCI_IDS_PATH: /share/hwdata/pci.ids
SSL_CERT_FILE: /etc/ssl/certs/ca-certificates.crt
IGNORE_VAAPI_ENABLED_FLAG: "false"
XDG_CACHE_HOME: /config/cache
NEOReadDebugKeys: "1"
OverrideGpuAddressSpace: "48"
volumes:
- /mnt/wdc/media/xiaoya:/media
- /mnt/wdc/media/config_1:/config
ports:
- "8096:8096"
- "8920:8920"
labels:
maintainer: "Emby LLC apps@emby.media"
root@debian:/mnt/kingston/frigate# docker inspect emby | grep -i runtime
"Runtime": "runc",
"CpuRealtimeRuntime": 0,
root@debian:/mnt/kingston/frigate#
完了,现在问题就非常清楚了:
"Runtime": "runc"
说明你当前的 Emby 容器 是用默认 Docker runtime(runc)启动的
没有使用 NVIDIA runtime → 容器无法访问 GPU
这也是为什么即便环境变量写了 NVIDIA_VISIBLE_DEVICES=all,Emby 也看不到硬件加速
💡 简单总结:
旧容器无法动态“开启 GPU”
必须重建容器,指定 --runtime=nvidia 才能让 NVENC 硬件转码生效
正确做法(命令行重建容器)
假设你的配置目录是 /mnt/config,媒体目录是 /mnt/media,端口保持默认:
docker stop emby
docker rm emby
docker run -d
--name emby
--runtime=nvidia
-e NVIDIA_VISIBLE_DEVICES=all
-e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
-e TZ=Asia/Shanghai
-p 8096:8096
-v /mnt/config:/config
-v /mnt/media:/media
emby/embyserver:beta
--runtime=nvidia ✅ 容器访问 GPU
环境变量 ✅ 控制 GPU 可见性和 NVENC 权限
是否可以修改,谢谢
services:
emby_1:
image: emby/embyserver:beta
container_name: emby_1
restart: unless-stopped
runtime: nvidia
environment:
TZ: Asia/Shanghai
GIDLIST: "0,0"
NVIDIA_DRIVER_CAPABILITIES: all
NVIDIA_VISIBLE_DEVICES: all
UID: "0"
GID: "0"
PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG: en_US.UTF-8
HOME: /tmp
AMDGPU_IDS: /share/libdrm/amdgpu.ids
FONTCONFIG_PATH: /etc/fonts
LD_LIBRARY_PATH: /lib:/system
LIBVA_DRIVERS_PATH: /lib/dri
OCL_ICD_VENDORS: /etc/OpenCL/vendors
PCI_IDS_PATH: /share/hwdata/pci.ids
SSL_CERT_FILE: /etc/ssl/certs/ca-certificates.crt
IGNORE_VAAPI_ENABLED_FLAG: "false"
XDG_CACHE_HOME: /config/cache
NEOReadDebugKeys: "1"
OverrideGpuAddressSpace: "48"
volumes:
- /mnt/wdc/media/xiaoya:/media
- /mnt/wdc/media/config_1:/config
ports:
- "8096:8096"
- "8920:8920"
labels:
maintainer: "Emby LLC apps@emby.media"