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.shsudo 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

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

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

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

  2. Debug docker: docker: Error response from daemon: could not select device driver ““ with capabilitie

    报错信息 docker: Error response from daemon: could not select device driver "" with capabiliti ...

  3. 解决 docker exec 报错 Error response from daemon: Container XXXXX is not running

    docker exec 报错 Error response from daemon: Container XXXXX is not running 解决思路 XXXXX 为报错容器id 问题描述 废话 ...

  4. Ubuntu18.04报错解决方案:could not select device driver ““ with capabilities: [[gpu]]

    Docker容器: Docker容器将一个软件包在一个完整的文件系统中,该文件系统包含运行所需要的一切:代码,运行时,系统工具,系统库等任何可以安装在服务器上的东西.这保证了软件无论其环境如何,都将始 ...

  5. Docker 报错Error response from daemon: Get https://xx.xx.xx.xx/v2/: Service Unavailable

    问题 Mac 上docker pull是报错Error response from daemon: Get https://xx.xx.xx.xx/v2/: Service Unavailable 执 ...

  6. docker报错Error response from daemon: Get https://registry-1.docker.io/v2/: x509

    docker报错 Error response from daemon: Get https://registry-1.docker.io/v2/: x509: certificate has exp ...

  7. mac上docker pull是报错Error response from daemon: Get https://xx.xx.xx.xx/v2/: Service Unavailable

    执行docker pull xx.xx.xx.xx/xx/xx,下载私有库的镜像时报错如下: Error response from daemon: Get https://xx.xx.xx.xx/v ...

  8. docker 删除镜像image报错 Error response from daemon: conflict: unable to remove repository reference

    我在删除nginx镜像报错, 报错信息如下: Error response from daemon: conflict: unable to remove repository reference & ...

  9. docker-Login 报错 Error response from daemon

    docker login 报错: Error response from daemon: Get https://IP/v2/: http: server gave HTTP response to ...

最新文章

  1. 家用电器用户行为分析与事件识别_用户行为分析系统
  2. C# 跨线程赋值的简单做法
  3. mysqld:表mysql.plugin不存在_PostgreSQL 12.0 表操作
  4. Android SO逆向1-ARM介绍
  5. android xml 删除控件,android-cordova插件rm cordova-plugin-whitelist不会更改config.xml,因此在构建时将被读取...
  6. Selenium两万字大题库
  7. C#中的类型转换大总结
  8. 作者:刘勇,山东农业大学教授、博士生导师。
  9. 数据中心节能制冷---冷却塔帮忙
  10. Sps的content menu 和 smart-tag的问题
  11. SpringBoot写后端接口,看这一篇就够了!
  12. 解决Navicat for MySQL 连接 Mysql 8.0.13出现1251- Client does not support authentication protocol 错误
  13. Java实现计算器的基本功能
  14. 【联想拯救者R7000】安装nvidia驱动Perform MOK management 界面键盘失灵现象(已解决)
  15. 【python办公自动化(17)】利用python向PPT文档中写入内容(证书生成器)
  16. gtx 750 linux驱动下载,Ubuntu 12.04安装NVIDIA GTX750显卡驱动
  17. 商品销售数据建模及分析
  18. A15处理器和m1哪个好
  19. 怎样将PDF水印删除 PDF删除水印的小技巧
  20. 2020年华东师大研究生机试题

热门文章

  1. yarn全局安装vue/cli vue不是内部命令
  2. springboot 排除 默认的loggback 和slf4j的依赖
  3. 快速开发工作流_03_集成在线流程设计器_内置用户免登录
  4. flowable实现流程回退功能
  5. 使用html5+的plus调起相机拍照,使用canvas压缩图片,转成base64传到后台
  6. qt怎么创建pri文件
  7. 基于websocket的简单通信
  8. Python str 函数 - Python零基础入门教程
  9. BugkuCTF-WEB题GET和POST
  10. 加载不同linux内核,Linux内核加载过程