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

13 篇文章 2 订阅
9 篇文章 0 订阅

Docker容器中使用Nvidia GPU报错 docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].

问题出现

我们知道,想要在 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-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

并执行:

sudo sh nvidia-container-runtime-script.sh

会得到类似如下输出:

OK
deb https://nvidia.github.io/libnvidia-container/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/$(ARCH) /
Hit:1 http://archive.canonical.com/ubuntu bionic InRelease
Get:2 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64  InRelease [1139 B]                
Get:3 https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64  InRelease [1136 B]           
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease                                       
Get:5 https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64  Packages [4076 B]                 
Get:6 https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64  Packages [3084 B]            
Hit:7 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic InRelease
Hit:8 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:9 http://us-east4-c.gce.clouds.archive.ubuntu.com/ubuntu bionic-backports InRelease
Fetched 9435 B in 1s (17.8 kB/s)                   
Reading package lists... Done

2 安装

经过第一步之后,英伟达的软件源就已经添加好了,接下来直接 apt 安装就行了:

sudo apt-get install nvidia-container-runtime

安装完成后验证一下,输入:

which nvidia-container-runtime

应当得到输出:

/usr/bin/nvidia-container-runtime

这就表明该软件已经正常安装好了。

3 运行容器

安装好之后,就可以运行我们带 GPU 的容器了:

docker run -it --gpus all image_name:tag_name

此时不会报错,正常进入容器。

4 选定GPU编号

如果需要指定某个 GPU 编号,规范还是很严格的,笔者亲测下面这种格式是可以的:

docker run -it --gpus '"device=0,2"' --shm-size 32g image_name:tag_name        

Ref:

https://blog.csdn.net/BigData_Mining/article/details/104991349

  • 32
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
Docker是一种开源的容器化平台,可以帮助开发者将应用程序和其依赖环境打包成一个独立、可移植的容器。然而,当运行Docker命令时,有时会遇到错误信息:"docker: error response from daemon: could not select device driver "" with c"。 这个错误通常是由于操作系统或Docker配置问题引起的。可能的原因和解决方法如下: 1. 操作系统不兼容:该错误可能是由于操作系统版本过低或过高导致的。请确保您使用的操作系统版本符合Docker的要求。您可以通过查看Docker官方文档或论坛来了解您的操作系统是否支持。 2. Docker配置问题:这个错误也可能是由于Docker的配置问题引起的。您可以尝试重新配置Docker,确保正确设置了Docker的驱动程序。您可以在Docker配置文件中找到有关驱动程序的设置,并按照官方文档指导进行配置。 3. 硬件驱动问题:这个错误也可能是由于硬件驱动问题引起的。如果您在某些比较特殊的硬件环境中运行Docker,可能需要额外安装或配置相关的硬件驱动。请参考硬件供应商的文档或支持资源来了解如何正确配置硬件驱动。 总结来说,错误"docker: error response from daemon: could not select device driver "" with c"通常是由于操作系统或Docker配置问题引起的。您可以通过确保操作系统兼容性、重新配置Docker或解决硬件驱动问题来解决这个错误。如果问题仍然存在,您可以参考Docker官方文档或论坛寻求进一步的支持和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值