热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux服务器搭建nvidia-docker环境过程详解

这篇文章主要介绍了Linux服务器搭建nvidia-docker环境过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP docker

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

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

Install NVIDIA driver
Install docker
Install nvidia-docker

安装显卡驱动

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

安装docker

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

安装docker步骤如下

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

sudo apt-get remove docker docker-engine docker.io

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

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

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

更新apt package index

sudo apt-get update

然后,安装软件包以允许apt通过HTTP

sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

接下来,加入docker的官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo pt-key add -

验证下列指令输出的是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

sudo apt-key fingerprint 0EBFCD88

接下来,通过运行下面的指令告诉apt用stable repository

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
(usb_release -cs) \
stable"

在这里,我们就已经完成了对知识库的建立,接下来,我们将更新apt package index并且安装Docker CE

sudo apt-get update && apt-get install docker-ce

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

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

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

sudo docker run hello-world

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

安装nvidia-docker

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

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

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

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

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

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

最后,我们将安装nvidia-docker

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

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

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

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

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

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

docker version

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文探讨了在Linux系统上使用Docker时,通过volume将主机上的HTML5文件挂载到容器内部指定目录时遇到的403错误,并提供了解决方案和详细的操作步骤。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
author-avatar
手机用户2602929765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有