Ubuntu18.04报错解决方案:could not select device driver ““ with capabilities: [[gpu]]
Docker容器:
Docker容器将一个软件包在一个完整的文件系统中,该文件系统包含运行所需要的一切:代码,运行时,系统工具,系统库等任何可以安装在服务器上的东西。这保证了软件无论其环境如何,都将始终运行相同的程序。
Nvidia-Docker设计初衷:
Docker容器与平台无关,但也与硬件无关。当使用特殊的硬件,如NVIDIA GPUs
时,这就产生了一个问题,这些硬件需要的内核模块和用户级库来操作。因此,Docker本机不支持容器中的NVIDIA GPUs
。
nvidia-docker
本质上是围绕docker
命令的包装器,它透明地为容器提供了在GPU上执行代码所需的组件。只有在使用nvidia-docker run
来执行使用GPUs的容器时才是绝对必要的。nvidia-docker
实现了对docker client
的封装,并在容器启动时,将必要的GPU device和libraries挂载到容器中。
参考文档:nvidia-docker工具介绍
Nvidia-Docker1.0和Nvidia-Docker2.0的区别
Nvidia-docker1.0存在的问题:
- 设计高度与docker耦合,不支持其它的容器运行时。如: LXC, CRI-O及未来可能会增加的容器运行时。
- 不能更好的利用docker生态的其它工具。如: docker compose。
- 不能将GPU作为调度系统的一种资源来进行灵活的调度。
- 完善容器运行时对GPU的支持。如: 自动的获取用户层面的NVIDIA Driver libraries, NVIDIA kernel modules, device ordering等。
Nvidia-docker2.0的实现机制:
其核心组建包括:nvidia-docker 2.0
、containerd
、nvidia-container-runtime
、libnvidia-container
以及runc
直接的关系。
nvidia-docker2.0
它是一个简单的包,主要通过修改docker的配置文件
/etc/docker/daemon.json
来让docker使用NVIDIA Container runtime
。nvidia-container-runtime
真正的核心部分,它在原有的
docker
容器运行时runc
的基础上增加一个prestart hook
,用于调用libnvidia-container
库。libnvidia-container
提供一个库和一个简单的CLI工具,使用这个库可以使NVIDIA GPU被Linux容器使用。
Containerd
主要负责的工作是:
- 管理容器的生命周期(从容器的创建到销毁)
- 拉取/推送容器镜像
- 存储管理(管理镜像及容器数据的存储)
- 调用runc 运行容器
- 管理容器的网络接口及网络
RunC
一个轻量级的工具,用来运行容器。
参考文档:nvidia-docker2.0介绍
问题描述
环境:Ubuntu 18.04.1
启动容器:
docker start containerID
抛出错误:
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
Error: failed to start containers: 94b85ba86c95
出现该错误的原因在于没有安装nvidia-docker
解决方案:
更新apt库,加载
nvidia-docker2
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list $ sudo apt-get update
安装
nvidia-docker2
软件包并重新加载docker守护程序配置$ sudo apt-get install nvidia-docker2 $ sudo pkill -SIGHUP dockerd $ sudo systemctl restart docker
参考文档:安装nvidia-docker2.0
Ubuntu18.04报错解决方案:could not select device driver ““ with capabilities: [[gpu]]相关推荐
- docker gpu报错Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
Docker容器中使用Nvidia GPU报错 docker: Error response from daemon: could not select device driver "&qu ...
- 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: [ ...
- docker: cloud not select device driver with “capabilities:[[gpu]]“
用docker创建任务,指定使用gpu的时候,报错.国外网友给出的答案解决了问题,记录一下. distribution=$(. /etc/os-release;echo I D ID IDVERSIO ...
- Ubuntu18.04报错:Aborted (core dumped) (classes.jar.toc.tmp ) ninja: build stopped: subcommand failed解决
报错:/bin/bash: line 1: 13460 Aborted (core dumped) ( out/host/linux-x86/bin/ijar out/target/common/ob ...
- Ubuntu18.04报错:make[1]: *** No rule to make target armv4-mont.o, needed by build-msm8916/lk. Stop.
报错:make[1]: *** No rule to make target build-msm8916/lib/openssl/crypto/bn/asm/armv4-mont.o, needed ...
- Ubuntu18.04报错:system/tools/aidl/aidl_language_y.yy: error: define variable ‘api.pure‘ is not used
报错:system/tools/aidl/aidl_language_y.yy:17.1-12: error: %define variable 'api.pure' is not used解决: # ...
- Ubuntu18.04报错:bin/bash: prebuilts/misc/linux-x86/bison/bison: cannot execute binary file解决
报错:bin/bash: prebuilts/misc/linux-x86/bison/bison: cannot execute binary file报错原因:在x86 64位系统执行32位程序 ...
- 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 ...
- ubuntu16.04 安装apache2报错 解决方案
为什么80%的码农都做不了架构师?>>> 我的原CSDN博文: ubuntu16.04 安装apache2报错 解决方案 2016/11/07 转载于:https://my.o ...
最新文章
- mysql 去除括号_MySQL语句批量去除括号及内容
- 题目1185:特殊排序
- 181102 Python环境搭建(安装Sublime Text3)
- 【Android 插件化】Hook 插件化框架 ( hook 插件化原理 | 插件包管理 )
- python获取网页源码被拒绝_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
- endwith php,endwith函数怎么使用
- Ubuntu安装Yafu方法及资料
- Xamarin教程索引页
- 边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
- 黎曼流形(Riemannian manifold)
- 蓝牙耳机连接苹果手机成功,但是手机音乐依然外放。
- 如何快速掌握技术和知识点
- Linux杀掉挖矿病毒(qW3xT.2)
- 常见的相似度计算方式
- . xx.sh ./xx.sh sh xx.sh的区别
- Qt_Opencv安装
- Lab3-1 832001227
- 软件构造学习总结(个人观点)
- 我们用PyTorch搭建神经网络时,会遇到nn.ReLU(inplace=True),inplace=True是什么意思呢?
- Qt编写物联网管理平台40-类型种类
热门文章
- DASCTF X GFCTF 2022十月 Misc
- USB协议分析仪在实际USB连通中的作用
- VSCode同步上传代码到Gitee
- CVPR2020 | 旷视研究院提出PVN3D:基于3D关键点投票网络的单目6DoF位姿估计算法
- 停车场的设计你认真了吗?
- Kdevelop如何调整程序的字体大小和颜色
- oppo锁屏断网设置在哪里呀_oppo手机不自动锁屏怎么设置怎么办
- 【如何使用机智云平台进行ESP8266固件烧入】
- FFF Warm Up Contest 12 - NEERC 2011 [iSea]
- tesseract4.1.0 win10 VS2017profess编译