Ubuntu下Docker-compose调用nvidia runtime失败,原可运行现报错求助
Jellyfin容器NVIDIA硬件加速重启后失效的排查思路
以下是针对该问题的分步排查建议:
验证Docker与NVIDIA Runtime基础状态
- 检查Docker服务运行状态:
确保服务无报错,若异常则重启服务:sudo systemctl status dockersudo systemctl restart docker - 确认NVIDIA Runtime已被Docker识别:
正常输出应包含docker info | grep -i nvidiaRuntimes: nvidia runc字样。
- 检查Docker服务运行状态:
测试NVIDIA容器工具链可用性
运行官方测试容器,排除工具链本身的问题:docker run --rm --runtime=nvidia nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi若该命令失败:
- 检查NVIDIA驱动模块是否加载:
lsmod | grep nvidia - 若模块未加载,重新安装DKMS驱动:
sudo dkms install -m nvidia -v 535.98
- 检查NVIDIA驱动模块是否加载:
排查docker-compose配置冲突
你的配置同时使用了runtime: nvidia和deploy.resources.reservations.devices,部分Docker版本中这两个配置存在兼容性问题:- 尝试移除
deploy块,仅保留runtime: nvidia,再启动容器:docker-compose up -d - 或反过来,移除
runtime: nvidia,保留deploy块(需确保docker-compose版本≥3.8)。
- 尝试移除
检查用户权限问题
容器指定了user: 1000:1000,需确认该用户有权限访问NVIDIA设备:- 查看主机NVIDIA设备权限:
ls -l /dev/nvidia* - 将用户1000加入
nvidia组:
完成后重新登录系统,再尝试启动容器。sudo usermod -aG nvidia $USER - 临时移除
user配置,用root用户启动容器,排除权限问题。
- 查看主机NVIDIA设备权限:
查看容器启动日志定位具体错误
这是最关键的排查步骤,日志会明确失败原因:docker-compose logs jellyfin # 或通过容器ID查看: docker logs <your-jellyfin-container-id>若日志出现
nvidia-container-cli: initialization error,重新配置NVIDIA runtime:sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker验证版本兼容性
确认NVIDIA驱动版本(nvidia-smi输出)与nvidia-container-toolkit、nvidia-docker2版本兼容,驱动更新后工具链未同步可能导致问题,必要时重新安装匹配版本的工具链。
内容的提问来源于stack exchange,提问作者sackopotatoes
相关产品推荐
相关产品推荐

