docker: Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]问题解决

在docker19+版本中,直接使用--gpus运行带有GPU的容器会报错。解决方法包括:添加英伟达apt源,安装NVIDIA Container Runtime,然后重新启动docker或服务器。运行容器时,可通过--gpus all或指定GPU编号来使用GPU资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题出现

我们知道,想要在 docker19 及之后的版本中使用 nvidia gpu 已经不需要单独安装 nvidia-docker 了,这已经被集成到了 docker 中。

相必大家也知道,要使用宿主机的 GPU,需要在 docker run 的时候添加 --gpus [xxx] 参数。

但是,在我们刚刚安装好 docker 并构建好镜像之后,直接这样运行是有问题的,即:

docker run -it --gpus all image_name:tag_name

会出现如题报错:

docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].

解决方案

实际上,我们在通过 --gpus 参数来使用宿主机的 GPU 时,需要先安装一个英伟达的容器运行。

另外需要注意的是,这个东西是不能直接 apt install,会报找不到该软件,需要先添加英伟达的 apt 软件源。具体操作步骤如下:

1 添加源

将下面的脚本放到任意位置,

# nvidia-container-runtime-script.sh

sudo curl -s -L https://nvidia.github.io/nvidia-container-runti
### Docker 创建容器GPU 设备驱动选择失败解决方案 当遇到 `Error response from daemon: could not select device driver " with capabilities: [[gpu]]` 错误时,这通常意味着 Docker 容器尝试访问 GPU 资源但未能成功配置所需的设备驱动程序。为了使 Docker 支持 GPU 加速功能,需要确保 NVIDIA 的相关工具包已正确安装并配置。 #### 安装 NVIDIA Container Toolkit NVIDIA 提供了一个名为 nvidia-container-toolkit 的软件包,用于让 Docker 容器能够利用主机上的 NVIDIA GPU 进行计算工作[^1]。以下是具体操作: ```bash # 更新 apt 包索引 sudo apt-get update && sudo apt-get install -y ca-certificates curl gnupg lsb-release # 添加官方 GPG 密钥 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg # 设置仓库地址 distribution=$(. /etc/os-release;echo $VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.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 # 安装 toolkit sudo apt-get update && sudo apt-get install -y nvidia-docker2 # 测试安装是否成功 sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi ``` 完成上述步骤之后,应该可以正常启动带有 GPU 访问权限的 Docker 容器,并且不会再收到关于无法选择设备驱动的消息[^2]。 如果仍然存在问题,则可能是因为显卡驱动版本不匹配或其他环境因素引起的,在这种情况下建议检查系统日志文件以及确认所使用的 CUDA 和 cuDNN 版本兼容性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值