Ubuntu18.04报错解决方案:could not select device driver ““ with capabilities: [[gpu]]_ubuntu error response from daemon:could not select-程序员宅基地

技术标签: 工具使用  docker  

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.0containerdnvidia-container-runtimelibnvidia-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

解决方案:

  1. 更新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
    
  2. 安装nvidia-docker2软件包并重新加载docker守护程序配置

    $ sudo apt-get install nvidia-docker2
    $ sudo pkill -SIGHUP dockerd
    $ sudo systemctl restart docker
    

参考文档:安装nvidia-docker2.0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39132520/article/details/118676177

智能推荐

正则匹配相邻n个重复字符_正则匹配多个字符串重复n次-程序员宅基地

文章浏览阅读1.9k次。正则匹配相邻n个重复字符//var reg = /([0-9a-zA-Z])\1{n-1}/;var reg = /([0-9a-zA-Z])\1{2}/;reg.test('2333');//true_正则匹配多个字符串重复n次

哨兵2号(Sentinel2)卫星数据处理_哨兵二号数据处理-程序员宅基地

文章浏览阅读3.9w次,点赞13次,收藏150次。李国春哨兵2号数据是一个重要的共享免费数据源,原来我就知道这个数据的应用很受重视,可是没想到现在在国内是如此空前的重视。哨兵数据处理人家ESA有自己的SNAP处理软件,非常好的软件。RSD也来凑凑热闹,也加了处理哨兵2号卫星数据的功能。介绍RSD处理哨兵数据之前先夸夸这数据,数据质量真好。但是最让我感动的还是人家的元数据,写的那是真好啊,看来值得我们学习的东西还有很多。好了,言归正传。..._哨兵二号数据处理

org.json.simple 使用详解-程序员宅基地

文章浏览阅读467次。一、概览JSON.simple是一个很简单的JSON处理,读取和写JSON数据的JAVA库,它完全兼容JSON的标准(RFC4627).你可以用JSON.simple来编码或解码JSON文本。【NOTE】如果想将对象转换成JOSN,或将JSON转换成对象,你需要考虑使用Jackson或Gson。二、功能JSON.simple的功能:. 完全兼容JSON的标准(RFC4627). ..._org.json.simple

【Maxent物种分布模型】气候变化对响尾蛇地理分布的影响-程序员宅基地

文章浏览阅读1.2k次。Maxent物种分布模型_物种分布模型

探索Lua5.2内部实现:Garbage Collection(1) 原理_lua incremental garbage collection-程序员宅基地

文章浏览阅读139次。以下内容转载自https://blog.csdn.net/yuanlin2008/article/details/8558103Lua5.2采用垃圾回收机制对所有的lua对象(GCObject)进行管理。Lua虚拟机会定期运行GC,释放掉已经不再被被引用到的lua对象。基本算法基本的垃圾回收算法被称为"mark-and-sweep"算法。算法本身其实很简单。首先,系统管理着所有已经创建了的对象。每个对象都有对其他对象的引用。root集合代表着已知的系统级别的对象引用。我们从root集合出发,._lua incremental garbage collection

浅谈WPF页间导航-程序员宅基地

文章浏览阅读106次。浅谈WPF页间导航 使用导航的目的是从一个页面进入到另一个页面。无论是预先决定的线性顺序(向导)还是基于层次的用户驱动程序(大部分网站的形式),或者动态生成的路径,主要有3种方法实现:调用Navigate方法,使用Hyperlinks,使用导航日志。 Navigate方法: 导航容器支持Navigate方法,它允许改变当前页,可以用目标页的示例:..._"wpf navigated=\"mainframe_navigated"

随便推点

Bugreport原理_failed to get bugreportz version, which is only av-程序员宅基地

文章浏览阅读2.7k次。文章目录1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport编译到/system/bin/bugreport@frameworks/native/cmds/bugreport/Android.bpcc_binary { name: "bugreport", srcs: ["bugreport.cpp"]_failed to get bugreportz version, which is only available on devices running

smartfroms word编辑_word如何改变smartart word如何编辑smartart-程序员宅基地

文章浏览阅读1.3k次。word怎样修改smartart请在“插入”选项中的“插图”中SmartArt图形中,根据自己的任务需要,选择“图形类型”,如列表、流程、循环、关系等。详见附图:如何在Word2010中更改SmartArt图形几何形状在Word2010文档中设置SmartArt图形样式的步骤如下所述:第1步,打开Word2010文档窗口,选中SmartArt图形。第2步,打开“SmartArt工具/设计”功能区,..._smartart样式文档的最佳匹配对象

像学历史课本一样学习Perl_像学教材一样学习-程序员宅基地

文章浏览阅读351次。转自http://www.cnblogs.com/baiyanhuang/archive/2010/05/16/1736436.html第一次接触Perl,还是2008年10月份的时候,当时因为项目重构,需要进行大量的文本操作,于是便拾起了以“文本操作为己任”的Perl语言。当然,带我入门的还是那本赫赫有名的The Llama Book, 即 第四版。 然而,由于主要是为了使用,所以只是快餐式的学习,并没有系统的去了解Perl,这几年_像学教材一样学习

数据预处理_数据预处理csdn-程序员宅基地

文章浏览阅读406次,点赞7次,收藏9次。数据转换:数据转换包括对数据进行平滑、聚合、标准化和归一化等操作,以便更好地适应模型的要求。平滑可以通过滤波或函数拟合来实现,聚合可以将数据按照一定的规则进行合并,标准化可以将数据按照均值和标准差进行缩放,归一化可以将数据缩放到固定的范围内。它是数据分析的关键步骤之一,可以提高数据质量、减少错误,以及为后续的模型训练和分析提供更准确、可靠的数据。在数据预处理中,可以将类别型数据进行编码,例如使用独热编码、标签编码或频率编码等方法,将其转换为数值型数据。_数据预处理csdn

Android 百度地图开发(三)--- 实现比例尺功能和替换自带的缩放组件_安卓百度地图比例尺-程序员宅基地

文章浏览阅读740次。转载请注明出处:http://blog.csdn.net/xiaanming/article/details/11821523貌似有些天没有写博客了,前段时间在忙找工作的事,面试了几家公司,表示反响还不错,过完国庆节去新公司报道,期待新的公司,新的同事,而且新公司还有很多女孩子,哈哈,我可是一年多没和女孩子一起工作过了,之前的公司全是男的,你没听错,真的全是男的,我还以为我自己不会在爱了,_安卓百度地图比例尺

基于Matlab分析分期付款陷阱_利率计算matlab代码-程序员宅基地

文章浏览阅读179次。通过Matlab结算可以看出,在费率为0.5%的情况下,但每期实际贷款费率为0.85%,而年利率竟高达10.2%。一般的银行存款年利率在1%到3%之间。_利率计算matlab代码

推荐文章

热门文章

相关标签