Docker部署realtime-whiper报错:无法选择NVIDIA驱动及Runtime问题
解决Docker无法识别NVIDIA Runtime的问题
问题背景
构建realtime-whisper Docker镜像成功,但启动容器时出现报错:
Error response from daemon: could not select device driver "nvidia" with capabilities: [[utility compute]]
已安装NVIDIA Container Toolkit,但执行docker info | grep -i runtime显示无nvidia runtime:
WARNING: daemon is not using the default seccomp profile Runtimes: io.containerd.runc.v2 runc Default Runtime: runc
操作系统为Linux Mint 21.3,曾尝试编辑daemon.json和config.toml但未解决问题。
排查与修复步骤
1. 重新注册NVIDIA Runtime到Docker
执行官方工具生成正确的配置,确保nvidia runtime被Docker识别:
sudo nvidia-ctk runtime configure --runtime=docker
2. 修正daemon.json配置
打开/etc/docker/daemon.json,确保配置如下(文件不存在则新建):
{ "runtimes": { "nvidia": { "args": [], "path": "nvidia-container-runtime" } } }
注意:删除文件中重复或冲突的配置项,保证格式合法。
3. 调整containerd配置(适配Docker默认runtime)
打开/etc/containerd/config.toml,找到[plugins."io.containerd.grpc.v1.cri".containerd]区块,添加nvidia runtime配置:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia] privileged_without_host_devices = false runtime_engine = "" runtime_root = "" runtime_type = "io.containerd.runc.v2" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options] BinaryName = "nvidia-container-runtime"
然后修改默认runtime:
default_runtime_name = "nvidia"
4. 重启相关服务
sudo systemctl restart containerd sudo systemctl restart docker
5. 验证配置生效
再次执行命令检查:
docker info | grep -i runtime
若输出中出现nvidia字样,说明runtime已成功注册。
6. 测试GPU容器运行
运行基础NVIDIA容器验证功能:
docker run --rm --runtime=nvidia nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
能正常显示GPU信息则说明问题解决。
额外排查点
- 确认NVIDIA驱动与Container Toolkit版本兼容,优先使用官方匹配版本。
- 检查当前用户是否在
docker用户组,避免权限问题:
执行后需重新登录生效。sudo usermod -aG docker $USER
内容的提问来源于stack exchange,提问作者Ali Zekai Deveci
相关产品推荐
相关产品推荐

