参考网址:
https://www.cnblogs.com/wuchangsoft/p/9767074.html

nvidia-docker是一个可以使用GPU的docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker上,其最终实现的还是在docker的启动命令上携带一些必要的参数。因此在安装nvidia-docker之前,还是需要安装docker的。

docker一般都是使用基于CPU的应用,而如果是GPU的话,就需要安装特有的硬件环境,比如需要安装nvidia driver。所以docker容器并不直接支持Nvidia GPU。为了解决这个问题,最早的处理办法是在容器内部,全部重新安装nvidia driver,然后通过设置相应的设备参数来启动container,然而这种办法是很脆弱的。因为宿主机的driver的版本必须完全匹配容器内的driver版本,这样导致docker image无法共享,很可能本地机器的不一致导致每台机器都需要去重复操作,这很大的违背了docker的设计之初。

为了使docker image能很便利的使用Nvidia GPU,从而产生了nvidia-docker,由它来制作nvidia driver的image,这就要求在目标机器上启动container时,确保字符设备以及驱动文件已经被挂载。

nvidia-docker-plugin是一个docker plugin,被用来帮助我们轻松部署container到GPU混合的环境下。类似一个守护进程,发现宿主机驱动文件以及GPU 设备,并且将这些挂载到来自docker守护进程的请求中。以此来支持docker GPU的使用。
需提前安装好的软件
docker

由于nvidia docker是基于docker基础之上运行的,因此需要安装原生的docker。

1.12.6版本的docker安装可查看这篇文章:Docker安装使用命令。http://www.linuxidc.com/Linux/2017-12/149575.htm

Docker CE版本可查看这篇文章:Docker CE安装教程。http://www.linuxidc.com/Linux/2017-12/149576.htm
nvidia显卡驱动

毫无疑问,要想使用GPU,必须要安装显卡驱动,这样nvidia docker才能正常运行。

显卡驱动的安装方式可查看这篇文章: CentOS集成GTX-1080Ti显卡搭建深度学习环境全过程。http://www.linuxidc.com/Linux/2017-12/149577.htm

这篇文章中讲解了CentOS安装显卡搭建深度学习环境的全过程,显卡驱动就是其中一项工作,因此这里就不单独写了,这篇文章中有安装的过程。
安装nvidia docker

1、下载nvidia-docker.repo文件,并将该文件输出到/etc/yum.repos.d/nvidia-docker.repo

curl -s -L https://nvidia.github.io/nvidia-docker/centos7/x86_64/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

操作结果:

这里写图片描述

2、查找可安装的nvidia docker版本

yum search --showduplicates nvidia-docker

运行上面的语句,会出现下面这张图中的信息,一路点击y

这里写图片描述

最终输出结果是下面这张图:

这里写图片描述

大家可以从中选择自己需要安装的nvidia docker版本,这里我安装的是docker是1.12.6版本的。因此我选择安装倒数第一个版本的nvidia docker。

3、安装nvidia-docker

yum install nvidia-docker-1.0.1-1.x86_64

点击回车,系统就会安装nvidia-docker,需要选yes o的地方输入y,再点击回车,最终安装成功。
运行nvidia docker

1、运行docker:

// 运行docker
systemctl start docker
// 加入开机启动
systemctl enable docker
// 查看状态
systemctl status coker

2、运行nvidia-docker:

systemctl start nvidia-docker
systemctl enable nvidia-docker
systemctl status nvidia-docker

nvidia-docker的操作命令与docker基本相同,所以操作起来没有什么障碍。
kubernetes调用GPU

yaml文件配置:

apiVersion: v1
kind: Pod
metadata:
name: gpu-test
spec:
volumes:

  • name: nvidia-driver
    hostPath:
    path: /var/lib/nvidia-docker/volumes/nvidia_driver/384.69

  • name: cgroup
    hostPath:
    path: /sys/fs/cgroup
    containers:

  • name: tensorflow
    image: tensorflow:0.11.0-gpu
    ports:

    • containerPort: 8000
      resources:
      limits:
      alpha.kubernetes.io/nvidia-gpu: 1
      volumeMounts:
    • name: nvidia-driver
      mountPath: /usr/local/nvidia/
      readOnly: true
    • name: cgroup
      mountPath: /sys/fs/cgroup

    alpha.kubernetes.io/nvidia-gpu: 1:表示只使用1块gpu

    path: /var/lib/nvidia-docker/volumes/nvidia_driver/384.69:宿主机driver位置,安装了nvidia-docker之后有的,当然需要保证宿主机nvidia driver是已经安装ok的,应该是安装了nvidia-docker之后,会发现宿主机的driver,然后映射到此。

    path: /sys/fs/cgroup:挂载该目录也是为了识别显卡,使容器内部能够使用宿主机显卡。

    volumeMounts:将宿主机目录挂载到容器内部,这个标签下的配置项就是要把宿主机目录挂载到容器内部的那个目录,通过name标识。

通过这些目录挂载配置,启动pod之后,容器就能够正常识别GPU并进行工作了。

安装使用NVIDIA-Docker——可使用GPU的Docker容器相关推荐

  1. centos7 安装英伟达驱动;cuda;docker离线安装;docker gpu离线安装;制作自己的cuda镜像;安装 容器中ssh协议

    原创不易,谢谢! centos7 安装英伟达驱动,cuda,docker安装,docker gpu安装,制作自己的cuda镜像,docker ssh协议 无论是笔记本还是台式电脑,这一步关键 参考资料 ...

  2. 安装配有NVIDIA GRID K2服务器系统不能正常安装和其他的GPU卡如K20x不能正常安装原厂驱动

    问题描述: 安装配有NVIDIA  GRID K2服务器时不能被正常安装; 问题原因: xCAT 安装配有GRID K2 节点时系统集成的第三方驱动不支持GRID K2 所以不能正常安装:同时其他的G ...

  3. DL之IDE:深度学习环境安装之CUDA的简介(显卡GPU/驱动/CUDA间的关系)、安装(根据本地电脑的NVIDIA显卡驱动版本去正确匹配CUDA版本)之详细攻略

    DL之IDE:深度学习环境安装之CUDA的简介(显卡GPU/驱动/CUDA间的关系).安装(根据本地电脑的NVIDIA显卡驱动版本去正确匹配CUDA版本)之详细攻略 目录 CUDA的简介 1.显卡GP ...

  4. linux系统英伟达gpu驱动卸载_在Linux系统中卸载手动安装的Nvidia驱动程序

    如何在Linux发行版上卸载Nvidia驱动程序?本文提供方法,在Linux机器上安装Nvidia驱动程序有两种方法,第一种方法是通过操作系统存储库,第二种方法是从Nvidia分发的二进制包安装,参考 ...

  5. NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架

    NVIDIA Jarvis:一个GPU加速对话人工智能应用的框架 Introducing NVIDIA Jarvis: A Framework for GPU-Accelerated Conversa ...

  6. 如何在ubuntu上安装nvidia-docker同时与宿主共享GPU cuda加速

    2019独角兽企业重金招聘Python工程师标准>>> 1.去github网站下载nvdia-docker 下载和安装nvdia-docker的命令是 # If you have n ...

  7. docker gpu 创建 训练环境_巧用 Docker 快速部署 GPU 环境

    公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux ! 在 Linux 服务器上使用 GPU 跑深度学习的模型很正常不过.如果我们想用 Docker 实现同样的需求,就需要 ...

  8. linux重启gpu_远程配置Ubuntu深度学习服务器GPU驱动+Docker+CUDA多个版本

    前言 首先说一下为什么建议使用docker来使用搭建深度学习服务器.其实网上很多人都写了如何搭建CUDA10.0 + cudnn8.5 , CUDA9.0 + cudnn7.5 等等,并且从Tenso ...

  9. Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    20201107 - 每个人的机器和实际需要的环境都不一样,本文只是提供了在自己实验室centos8上的部署过程,部署过程中,没有什么问题.请谨慎参考本篇文章,以免浪费宝贵时间. 0. 引言 之前的时 ...

最新文章

  1. tomcat指定配置文件路径方法
  2. 浅谈高性能数据库集群 —— 读写分离
  3. Java集合框架之ArrayList类
  4. JSR 303 - Bean Validation 简介及使用方法
  5. 3d slicer调整窗宽窗位_3D游戏模型制作技巧,掌握这些技术你也能进鹅厂!
  6. php fakepath,php 46 模板替换 上传附件fakepath json编码入库转义符
  7. vb在服务器上新建文件夹,VB 创建文件夹
  8. linux远程文件复制,Linux远程复制文件
  9. Update批量更新
  10. NOIP 模拟题 小G的城堡
  11. 抖音搬运新技术秒上热门,爆抖神器,效果惊人
  12. 诺基亚安卓手机无法清理后台任务
  13. 钛资本研究院:企业服务早期投资方法论
  14. shell脚本练习(随机取名)
  15. 8.String str=“i“与 String str=new String(“i”)一样吗?
  16. 基于Hyperlynx VX.2.5 的DDR3仿真之一:Verifying That the Software Recognizes Your Design Correctly
  17. 哄睡宝宝的有限状态机
  18. ubuntu桌面便签_在Ubuntu 上有什么必装的实用软件?
  19. 水仙花数(调用函数)
  20. RGB图像-像素、分辨率、相关概念

热门文章

  1. 情感分析项目基础知识总结二
  2. mysql中使用存储过程,游标,定时任务
  3. 手机密码锁机解决办法
  4. 关于超市/便利/专业店的SCM供应链管理方案浅析
  5. 【Linux】 rm -rf报错cannot remove ‘directory‘: Directory not empty
  6. 5G核心网基础架构确认,采用中国26家企业联合提出的SBA架构
  7. 【经典必看】14个实用的数据库设计技巧
  8. 污水排放监控,环保数采仪助力城市黑臭水体治理
  9. 2.28 不撞南墙不回头
  10. 大数据时代下房地产市场变革,微构房产大数据信息化应用简析