安装使用NVIDIA-Docker-- 可使用GPU的Docker容器

nvidia-docker是一个可以使用GPUdockernvidia-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 driverimage,这就要求在目标机器上启动container时,确保字符设备以及驱动文件已经被挂载。

nvidia-docker-plugin是一个docker plugin,被用来帮助我们轻松部署containerGPU混合的环境下。类似一个守护进程,发现宿主机驱动文件以及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版本,这里我安装的是docker1.12.6版本的。因此我选择安装倒数第一个版本的nvidia docker

3、安装nvidia-docker

yum install nvidia-docker-1.0.1-1.x86_64

点击回车,系统就会安装nvidia-docker,需要选yes\no的地方输入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
  1. alpha.kubernetes.io/nvidia-gpu: 1:表示只使用1块gpu
  2. path: /var/lib/nvidia-docker/volumes/nvidia_driver/384.69:宿主机driver位置,安装了nvidia-docker之后有的,当然需要保证宿主机nvidia driver是已经安装ok的,应该是安装了nvidia-docker之后,会发现宿主机的driver,然后映射到此。
  3. path: /sys/fs/cgroup:挂载该目录也是为了识别显卡,使容器内部能够使用宿主机显卡。
  4. volumeMounts:将宿主机目录挂载到容器内部,这个标签下的配置项就是要把宿主机目录挂载到容器内部的那个目录,通过name标识。

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

更多Docker相关教程见以下内容

Docker安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm

Ubuntu 15.04下安装Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm

Docker 创建基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm

在 Ubuntu 15.04 上如何安装Docker及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm

Ubuntu 16.04上Docker使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm

使用Docker分分钟启动常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm

Ubuntu 16.04下Docker修改配置文件不生效解决办法  http://www.linuxidc.com/Linux/2017-05/143862.htm

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-12/149578.htm

原文地址:https://www.cnblogs.com/wuchangsoft/p/9767074.html

时间: 2024-10-25 08:56:10

安装使用NVIDIA-Docker-- 可使用GPU的Docker容器的相关文章

Ubuntu16.04.5 配置英伟达NVIDIA 显卡 驱动实现GPU加速

Ubuntu16.04.5 配置英伟达NVIDIA 显卡 驱动实现GPU加速 标签(空格分隔): 运维系列 一:系统环境初始化与系统包准备 二:安装测试步骤 一:系统环境初始化与系统包准备 apt-get update apt-get install vim openssh-server 准备系统所需要的安装包 NVIDIA-Linux-x86_64-440.44.run cuda_10.2.89_440.33.01_linux.run 二:安装测试步骤 1.1 安装Nvidia显卡驱动 1.

理解Docker(1):Docker 安装和基础用法

1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt-get install apt-transport-https ca-certificates sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF7

Docker学习笔记(1-5)安装docker、启动和停止docker

Docker只支持64位,ubuntu.centos.redhat.mac os.windows Linux内核版本>3.10, 检查版本: #uname -i x86_64 #uname -r 3.13.0.40-generic ubuntu 系统上用apt-get安装软件 # 更新仓库 sudo apt-get update # 安装docker sudo apt-get install docker.io # 检查运行 ps axf | grep docker 结果:12561 ? Ssl

k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置

虚拟机:VMware? Workstation 12 Pro 系统:CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 由于刚开始学习k8s,本次软件的安装,我们都采用最简单的方式,能用yum 安装的尽量采用yum安装 1.ETCD安装 ETCD官方文档:https://github.com/coreos/etcd/blob/master/Documentation/docs.md 1.1 检查ETCD版本 [[email pro

docker探索-CentOS7中配置Docker的yum源并升级安装docker1.13(十)

此处使用的是CentOS7,内核版本为 [[email protected] ~]# uname -r 3.10.0-327.el7.x86_64 该版本下,配置了yum的源为阿里的镜像源,具体的配置方法可以参见阿里镜像源配置方法 为了方便的安装升级Docker,同时按照Docker官方文档中的方式,配置Docker的yum源,具体参见CentOS docker yum 源配置方法 配置好yum源之后,可以通过yum的list命令,获取可以安装的docker版本 [[email protecte

Docker入门与实践之 docker安装与了解

一.Docker 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 二.Docker 的优点  2.1.简化程序: Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任

【Docker系列】认识ELK,docker安装ELK和IK分词器

1.ELK简介 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具. Elasticsearch是个开源分布式搜索引擎,提供搜集.分析.存储数据三大功能.它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据

深入剖析Windows专业版安装Docker引擎和Windows家庭版Docker引擎安装的区别

摘自:https://www.cnblogs.com/zh94/p/12104427.html Windows专业版上安装Docker时,本质上是借助于Windows平台的hyper-v技术来创建一个Linux虚拟机,你所输入的所有的命令,都是借助于虚拟机中所部署的Docker引擎(服务端)进行执行的,所有Pull到本地的镜像数据,都是存储到对应的虚拟机目录里面: 而这其实也恰恰符合Docker的作风,毕竟Docker在运行时分为Docker引擎(也就是服务端守护进程)和客户端工具,而我们每次敲

理解Docker(7):Docker 存储 - AUFS

(1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 (6)若干企业生产环境中的容器网络方案 (7)Docker 存储 - AUFS Docker 存储可以分为分层文件系统和卷,本文将介绍 AUFS 分层文件系统. 1. 基础知识 1.1 Linux 的 rootfs 和 bootfs 一