一些背景上下文:我正在尝试在我拥有的 jellyfin 容器上设置 硬件加速。这最初有效,但在尝试重新启动容器后似乎突然停止工作。
我之前使用 nvidia 运行时进行了容器设置。 我安装了
nvidia-docker2
软件包。按照nvidia 安装指南中的所有步骤进行操作。我已经仔细检查过我的驱动程序是否是最新的。从我所知道的一切来看,这应该可以工作。
这是我可以看到已安装的软件包的快照
ii nvidia-container-runtime 3.13.0-1 all NVIDIA container runtime
ii nvidia-container-toolkit 1.13.5-1 amd64 NVIDIA Container toolkit
ii nvidia-container-toolkit-base 1.13.5-1 amd64 NVIDIA Container Toolkit Base
ii nvidia-dkms-535 535.98-0ubuntu0~gpu22.04.1 amd64 NVIDIA DKMS package
ii nvidia-docker2 2.13.0-1 all nvidia-docker CLI wrapper
这之前也有效,直到我因不相关的原因不得不重新启动容器。现在我无法运行包含 nvidia 运行时的 docker compose(忽略它,一切正常)。
这是我的 docker compose 文件的样子:
version: '3'
services:
jellyfin:
image: jellyfin/jellyfin
user: 1000:1000
network_mode: 'host'
volumes:
- /path/to/config:/config
- /path/to/cache:/cache
- /path/to/media:/media
runtime: nvidia
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
如果有任何关于如何进一步调试的想法/技巧,我将不胜感激。我有点不知所措,因为考虑到我能找到的所有文档/帖子和以前的经验,一切都应该在正确的位置...... 编辑:也包括我的 docker 的 daemon.json 文件:
{
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}
我的第一个线索是意识到容器工具正在修改的 docker
daemon.json
文件不是 docker 的 snap 版本所使用的文件(对于我的特定 ubuntu 安装,该文件位于
/var/snap/docker/current/config
下)。手动添加运行时定义让我更进一步(docker 现在知道 nvidia 运行时),但它仍然无法连接到一些必要的库来运行。我发现的一个线索是 docker 的 snap 版本只能访问
$HOME
中的 文件。我确信有一种方法可以将所有内容链接起来,但我决定尝试卸载 docker 的 snap 版本并通过 apt 重新安装。这就像一个魅力!