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

本文详细介绍了如何使用 Docker 的最新版本 19.03 来搭建 GPU 支持的容器,通过不同的命令参数指定 GPU 设备,包括所有 GPU、特定数量的 GPU 或指定 UUID 的 GPU。同时,还分享了成功启动带有 CUDA 10.0 基础镜像的容器实例。

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

笔者是使用目前最新的19.03版docker安装,按照他的使用命令的前两个
Github项目地址
在这里插入图片描述

#### Test nvidia-smi with the latest official CUDA image
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

# Start a GPU enabled container on two GPUs
docker run --gpus 2 nvidia/cuda:10.0-base nvidia-smi
# Starting a GPU enabled container on specific GPUs
docker run --gpus '"device=1,2"' nvidia/cuda:10.0-base nvidia-smi
docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:10.0-base nvidia-smi

这样用不了,但我用

# Specifying a capability (graphics, compute, ...) for my container
# Note this is rarely if ever used this way
docker run --gpus all,capabilities=utility nvidia/cuda:10.0-base nvidia-smi

成功启动镜像

### 解决 Docker 错误 'could not select device driver with capabilities [[gpu]]' 当遇到 `docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]` 的错误时,这通常意味着 Docker 容器尝试访问 GPU 资源失败。以下是几种可能的原因及解决方案: #### 验证 NVIDIA 驱动程序安装 确保主机上已正确安装并配置了 NVIDIA 显卡驱动程序以及 CUDA 工具包。可以通过命令 `nvidia-smi` 来验证是否可以正常显示显卡信息[^1]。 如果该命令返回有关 GPU 设备的信息,则说明驱动已经成功加载;反之则需按照官方文档重新安装合适的版本。 #### 更新或重装 Dockernvidia-container-toolkit 有时旧版本的软件可能会引发兼容性问题。建议卸载现有的 Docker 及其相关组件后再执行全新安装操作,特别是针对支持 GPU 加速功能的部分——即 `nvidia-docker2` 或者更新后的 `nvidia-container-toolkit`[^3]。 具体步骤如下所示: ```bash sudo apt-get remove docker-ce docker-ce-cli containerd.io curl -fsSL https://get.docker.com | sh distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker ``` #### 检查内核模块和服务状态 确认必要的内核模块已被加载,并且相应的服务正在运行。对于基于 Linux 的系统来说,应该有像 `nvidia-uvm`, `nvidia-modeset` 这样的模块处于活动状态。可通过以下指令来查看当前加载情况: ```bash lsmod | grep nvidia systemctl status nvlddmkm ``` 如果有任何缺失项,请参照发行版特定的方法手动加载它们或者重启计算机使更改生效[^4]。 #### 修改启动参数 (仅限高级用户) 某些情况下,在 GRUB 启动菜单中添加额外引导选项可以帮助解决问题。编辑 `/etc/default/grub` 文件中的 `GRUB_CMDLINE_LINUX_DEFAULT` 行加入 `rd.driver.pre=cciss,emcp,nvme,nvidia` 参数后保存修改并运行 `update-grub` 命令刷新设置[^5]。 完成上述调整之后记得再次重启机器以便让新的配置文件得到应用。 通过以上措施应当能够有效处理大多数关于 "cannot select gpu driver" 类型的问题。不过值得注意的是每种环境的具体状况可能存在差异因此实际操作过程中还需灵活应对可能出现的新挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值