docker相当于一个容器,其可以根据你所需要的运行环境构建相应的运行环境,此时各个环境之间彼此隔离,就不会存在在需要跑一个新的代码的时候破坏原来跑的代码所需要的环境,各个环境之间彼此隔离开,好像一个个容器将其隔离开一样

由于docker只针对在CPU上面跑的情况,对于需要在GPU上面运行的服务器,其提供了一个nvidia-docker

  1. sudo apt-get install -y nvidia-docker2
  2. sudo pkill -SIGHUP docker

对于怎么在服务器子账户上面搭建nvidia-docker,在百度上个个地方讲的都不一样,因此,在谷歌上查阅了相关的文档之后,将在服务器子账户上搭建nvidia-docker的方法陈列如下

简单的来说,要安装nvidia-docker总共的步骤分为三步:

  1. Install NVIDIA driver
  2. Install docker
  3. Install nvidia-docker
  • 安装显卡驱动

对于我们的服务器甚至大多数服务器来说,这一步都是在装机的时候必备的,因此这一步我们直接忽略,具体问题可以百度

  • 安装docker

docker有两种可用的版本:社区办(CE)和企业版(EE),正如英伟达显卡驱动器,我们需要知道linux版本来选择合适的安装文件,以下的安装版本是在ubuntu16.04上面安装社区版

安装docker步骤如下

  • 首先,我们需要将存在于电脑上的老的版本的docker移除,如果你可以确定这是你第一次在你的机器上安装docker,那么这一步就可以省略,否则你最好执行一下以下的命令
  1. sudo apt-get remove docker docker-engine docker.io

如果docker没有在你的机器上安装,那么apt-get将会告诉你这个问题

  • 接下来,我们将安装docker,推荐从repository(知识库)里面安装docker,这样可以实现当新的版本出现的时候,我们也可以从repository里面很容易的获得更新

我们为了从repository里面安装docker,我们需要首先建立docker repository,通常,我们需要更新apt包

  • 更新apt package index
  1. sudo apt-get update
  • 然后,安装软件包以允许apt通过HTTP
  1. sudo apt-get install \
  2. apt-transport-https \
  3. ca-certificates \
  4. curl \
  5. software-properties-common
  • 接下来,加入docker的官方GPG密钥
  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo pt-key add -
  • 验证下列指令输出的是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
  1. sudo apt-key fingerprint 0EBFCD88
  • 接下来,通过运行下面的指令告诉apt用stable repository
  1. sudo add-apt-repository \
  2. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  3. (usb_release -cs) \
  4. stable"
  • 在这里,我们就已经完成了对知识库的建立,接下来,我们将更新apt package index并且安装Docker CE
  1. sudo apt-get update && apt-get install docker-ce

然后这一步过后就是,等待安装等待安装,会下载很久,继续等待

  • 安装完docker之后,当然我们需要验证一下我们所安装的是否成功

利用著名的hello-world 镜像来测验我们安装的docker是否成功

  1. sudo docker run hello-world

如果得到如下的界面,证明docker安装成功

  • 安装nvidia-docker

在下一步,我们将通过安装nvidia-docker来完成我们的工作,其是在docker中的一个plug来帮助容器在GPU环境下的使用

首先,我们需要将已有的nvidia-docker移除

  1. docker volume ls -q -f driver=nvidia-docker |xargs -r -I{} -n1 docker ps -q -a -f volum={} | xargs -r docker
  2. sudo apt-get purge -y nvidia-docker

以前没有安装过的话这一步可以直接跳过

接下来,我们将加入必要的repository,然后更新apt package index

  1. curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  2. sudo apt-key add -
  3.  
  4. curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
  5. sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  6.  
  7. sudo apt-get update

最后,我们将安装nvidia-docker

  1. sudo apt-get install -y nvidia-docker2
  2. sudo pkill -SIGHUP dockerd

安装成功之后,对我们所安装的nvidia-docker进行验证

  1. docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

如果这是你第一次用如下的指令,你可以看到docker正在尝试下载一些东西

到这里,整个安装步骤全部结束了

号外!在有一次服务器显卡崩了之后,重新安装显卡驱动之后,竟然“惊喜”地发现我的nvidia-docker环境竟然不在了,但是输入

  1. docker version

时显示docker是存在的,因此就只需要按照前面的安装步骤安装nvidia-docker就可以,安装成功之后会发现之前根据dockerfile搭建的实验环境仍然是在的,万幸!

在linux服务器上搭建nvidia-docker环境的更多相关文章

  1. Linux服务器上搭建web项目环境

    一.下载并安装jdk 去官网下载linux系统上jdk的安装包jdk-8u181-linux-x64.tar.gz,在Linux的/usr目录下新建文件夹java,可以使用命令:cd /usr    ...

  2. 阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题

    参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里 ...

  3. 在linux服务器上搭建相对安全的FTP服务器

    一.如何在Linux服务器上安装vsftp不在多说,直接介绍如何进行安全性配置: 二.编辑vsftp.conf文件 关键配置项如下: anonymous_enable=NO /禁止匿名用户登录 loc ...

  4. Linux服务器上搭建codis集群之——安装前环境准备

    codis是redis的分布式集群模式,由豌豆荚开源,本文简单记录一下它的集群搭建方法. 首先介绍一下我的实验环境.三台配置相同的虚拟机, [root@test ~]# ip a|grep -w &q ...

  5. Linux服务器上搭建测试环境(war包+tomcat)

    悟空CRM项目环境部署(Java war项目) 在/root目录下创建一个文件夹(名字自取). ls命令查看一下是否创建成功,看到了新建的文件夹说明创建成功. tomcat和war包的准备:可以使用X ...

  6. 在linux服务器上搭建Struts2项目运行环境

    服务器上工作: 首先要先装java https://www.cnblogs.com/lamp01/p/8932740.html 然后装好tomcat https://www.cnblogs.com/y ...

  7. 在 Linux 服务器上搭建和配置 Hadoop 集群

    实验条件:3台centos服务器,jdk版本1.8.0,Hadoop 版本2.8.0 注:hadoop安装和搭建过程中都是在用户lb的home目录下,master的主机名为host98,slave的主 ...

  8. 使用Samba在Linux服务器上搭建共享文件服务

    最近我们的小团队需要在服务器上共分出一个共享文件夹用于大家存放公共的资源文档, 大家想啊,这肯定很简单呀,在Windows下面只要创建相关的windows account,共享某个文件夹,把读/写权限 ...

  9. 一行代码在Linux服务器上搭建基于.Net Core的博客

    如果你有一台Linux服务器(CentOS7+ 或者 Ubuntu 16.04+)可以使用以下命令快速搭建一个博客. curl http://cdn.zkeasoft.com/zkeacms-blog ...

随机推荐

  1. Spring+MyBatis整合过程

    步骤: 1.引入Spring+MyBatis开发包 >spring(ioc aop dao)开发包 >mybatis开发包,dbcp,驱动包 >mybatis-spring.jar整 ...

  2. Cesium 绘制点、线、面和测距

    本文基于ES6,采用React+Cesium的Webgis前端开发框架,目前threejs和cesium的结合正在研究中.此段代码采用原生javascript,可能过程中用到了es6的扁平化语法,如( ...

  3. 五一出门必备的手机APP神器 让你瞬间大开眼界

    如今我们手机上有各种各样的软件,但是比较实用的又有哪些呢?所以每次大家都会花上很久的时间去查找满意的软件吧!今天就给大家送上一波福利,因为五一小长假就要到来了,说不定大家会使用到呢! 轻颜相机 轻颜相 ...

  4. 【esri-loader】帮助文档翻译 part2 用法

    esri-loader怎么用?看完不要太清楚. [未完待续]!!! Q1: 在哪里用? 这是我最疑惑的问题之一,我知道要用esri-loader,肯定是某条js导入语句起作用的,但是你得告诉我写在哪里 ...

  5. coreRT 和 Native 编译netcore AOT程序

    AOT是预编译成本地程序,避免JIT动态编译存在的性能问题. netcore一个吸引人的项目,就是基于coreRt 运行时的本地编译技术,下面我来替大家尝试一下它究竟表现如何. <Project ...

  6. 【Linux】【MySQL】CentOS7、MySQL8.0.13 骚操作速查笔记——专治各种忘词水土不服

    1.前言 [Linux][MySQL]CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行) 专治各种忘词,各种水土不服. - -,就是一个健忘贵的速查表:(当然不包括SQL的 ...

  7. pipe size设置

    我所用的软件架构,使用pipe来实现线程之间的大量数据的传输.在实际操作中,pipe中传输的是数据的指针,而不是数据本身.  但是在调试过程中,我发现,如果我尝试往pipe里面write10000个指 ...

  8. Centos7上安装单机版redis

    Centos 7 上安装单机版redis Redis 官网下载 https://redis.io/download 1. 下载.解压.安装 cd /usr/local #wget http://dow ...

  9. 使用 Flask-Cache 缓存给Flask提速

    https://blog.csdn.net/u013205877/article/details/78013289

  10. 【转】HTTP请求中的form data和request payload的区别

    jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的,比如用$.ajax方法发送请求时(data参数是一个JSON.stringify()处理后的字符串, ...