部署Docker镜像调用GPU算力时遇驱动匹配错误求助
问题解决:Docker GPU容器启动报错
could not select device driver "" with capabilities: [[gpu]] 是的,你确实遗漏了在宿主机上安装Nvidia Container Toolkit的步骤——这是让Docker能够识别并调用宿主机GPU的核心组件,仅安装宿主机Nvidia驱动不足以让Docker实现GPU透传。
解决步骤(Ubuntu系统)
添加Nvidia官方软件源
执行以下命令配置源:curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update安装Nvidia Container Toolkit
sudo apt-get install -y nvidia-container-toolkit配置Docker并重启服务
让Docker启用Nvidia runtime:sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker验证配置是否生效
运行官方测试容器,检查GPU是否能被正常调用:docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi如果命令输出正常的GPU信息,说明配置完成,此时再执行你的容器启动命令即可成功。
额外注意事项
- 确保宿主机Nvidia驱动版本与Docker镜像中的CUDA版本兼容(你的场景中
nvidia-smi能正常显示,说明驱动支持CUDA 12.2,无需担心版本不匹配) - 若之前安装过旧版
nvidia-docker2,建议先卸载再安装新的Toolkit,避免组件冲突 - 必须重启Docker服务,否则新的runtime配置不会生效
内容的提问来源于stack exchange,提问作者Tushar Sethi
相关产品推荐
相关产品推荐

