Ubuntu16.04下nvidia驱动+nvidia-docker+cuda9+cudnn7安装
一、宿主机安装nvidia驱动
打开终端,先删除旧的驱动:
sudo apt-get purge nvidia*
禁用自带的 nouveau nvidia驱动
sudo gedit /etc/modprobe.d/blacklist.conf
看下Nouveau是否已经被禁用
lsmod | grep nouveau
如果已经没有任何显示说明不用禁用了,否则继续下面操作
sudo vim /etc/modprobe.d/blacklist-nouveau.conf #创建一个文件(注:按一下i键,表示现在进行内容插入)
并添加如下内容:
blacklist nouveau
options nouveau modeset=0
注:退出可用两个命令中任意一个:
按完esc键后,按shift+zz 或者
按完esc键后,输入“:wq!”双引号里面的内容
再更新一下:
sudo update-initramfs –u
确认下Nouveau是已经被禁用:
lsmod | grep nouveau
没有输出什么东西,说明已经成功关闭了。
关闭X-window服务:
Ctrl+Alt+F1切换到无桌面命令终端:这里lightdm是你自己的显示管理器,也可能是gdm,kdm,到底是哪一个可以使用 cat /etc/X11/default-display-manager进行查看,然后修改,并关闭显示管理器。这里下面几小步建议用手机拍照,对着照片来做,因为你可能不太熟悉
sudo service lightdm stop
此时正式进入终端界面:
Login:用户账号
Password:用户密码
安装:
cd /home/wlh/tmp # 导到你的下载的驱动放在哪里的地址
sudo sh NVIDIA-Linux-x86_64-387.12.run
按照如下步骤安装:
(1)accept
(2)contiuned install
后面默认yes安装就好了
启动显示器:(lightdm只是我的显示管理器,你可能是前面的说的gdm)
sudo service lightdm start
然后按Ctrl+Alt+F7 进入到桌面进行操作
检查是否成功
nvidia-smi
二、docker安装
下载地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
containerd.io_1.2.5-1_amd64.deb
docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb
docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb
dpkg -i containerd.io_1.2.5-1_amd64.deb
dpkg -i docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb
dpkg -i docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb
使用 docker 命令试试安装成功没有。
建立 docker 组:
$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
三、nvidia docker安装
If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f sudo apt-get purge -y nvidia-docker
Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update
执行下载5个命令,下载5个包到当前目录,拷贝这些包到服务器上。
apt download libnvidia-container1
apt download libnvidia-container-tools
apt download nvidia-container-runtime-hook
apt download nvidia-container-runtime
apt download nvidia-docker2
在服务器上执行,dpkg -i libnvidia nvidia 即可一次安装这5个包。
Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
四、安装cuda9.0
首先去官网下载cuda9.0, 下载那个1.6G的.run文件,下载完毕就可以正式安装了。
进入下载目录,给文件添加运行权限:
chmod +x ./cuda_9.0.176_384.81_linux.run
运行安装
sudo ./cuda_9.0.176_384.81_linux.run
启动安装程序,一直按空格到最后(可以选择Ctrl+c跳过),不用担心,到99%的时候,输入accept接受条款
注意:第一个提醒你是否安装驱动时,选“n”,其余都“y”
安装完毕后就需要添加环境了,这步很重要!!!
gedit ~/.bashrc
把下面的内容添加到最后:
export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
测试是否安装成功
nvcc -V
五、安装cudnn7
下载完直接解压,解压会出现一个cuda文件夹,里面有两个文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录里。 如果你就在local下解压的就不要移动了。只需要给文件加读权限即可!
sudo chmod a+x /usr/local/cuda/include/cudnn.h sudo chmod a+x /usr/local/cuda/lib64/libcudnn*
然后更新网络连接:
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.0.5 # 自己查看.so的版本
sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
查看cudnn版本,检查是否安装好:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
六、加载打包的镜像
$ docker load<jq_tensorflow1.8-cuda9.0-cudnn7-devel-ubuntu16.04.tar
七、启动容器
docker run --runtime=nvidia -it -v /home/dock/Downloads:/usr/Downloads name /bin/bash
启动报错解决办法:
Systemd drop-in file sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime EOF sudo systemctl daemon-reload sudo systemctl restart docker Daemon configuration file sudo tee /etc/docker/daemon.json <<EOF { "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } } } EOF sudo pkill -SIGHUP dockerd 再去开启镜像,done。
八、配置容器内环境
容器后台运行退出命令:CTRL+p+q
后台容器重新进入命令:docker exec -it [container id] /bin/bash
Ubuntu16.04下nvidia驱动+nvidia-docker+cuda9+cudnn7安装的更多相关文章
- Ubuntu16.04下搜狗输入法、Sublime Text 3的安装
Ubuntu16.04下搜狗输入法.Sublime Text 3的安装 一.搜狗输入法 1. 安装中文语言 默认在Ubuntu16.04下是没有中文的,需要安装中文,在System Settings- ...
- 服务器重装和配置:Ubuntu16.04 + Anaconda3 + GTX1080驱动 + CUDA8 + cuDNN + 常用工具安装
前一篇[基于Ubuntu16.04的GeForce GTX 1080驱动安装,遇到的问题及对应的解决方法]是在机器原有系统上安装GPU驱动,后来决定备份数据后重装系统,让服务器环境更干净清爽. 1.安 ...
- ubuntu16.04下使用navicat连接docker mysql5.7.20
摘要: 本文将介绍如何使用docker创建mysql容器,并使用navicat连接该mysql服务,最后提供一个navicat中文乱码问题的解决方案. docker的安装和使用在这里不再赘述,如果不是 ...
- Ubuntu16.04下使用ufw保护docker容器
ufw屏蔽服务器非docker容器应用端口没有任何问题.问题出在屏蔽不了容器应用对应端口.排除了"ufw使用不当"."docker-compose.yml端口映射不正 ...
- 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展
1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...
- Ubuntu16.04下配置pip国内镜像源加速安装【转】
本文转载自:https://blog.csdn.net/yucicheung/article/details/79095742 问题描述 基于国内网速的问题,我们直接pip安装包通常速度非常慢,而且经 ...
- 深度学习环境配置:Ubuntu16.04下安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)
本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- ubuntu16.04下docker安装和简单使用(转)
ubuntu16.04下docker安装和简单使用 转自:https://www.cnblogs.com/hupeng1234/p/9773770.html 前提条件 操作系统 docker-ce ...
- Ubuntu16.04下安装多版本cuda和cudnn
Ubuntu16.04下安装多版本cuda和cudnn 原文 https://blog.csdn.net/tunhuzhuang1836/article/details/79545625 前言 因为之 ...
随机推荐
- VirtualBox 启动时提示“获取 VirtualBox COM 对象失败”的解决
昨天给电脑打了一堆补丁和更新,今天启动 VirtualBox 的时候提示 “获取 VirtualBox COM 对象失败”,好在百度到了 CSDN 上的一篇文章解决了这个问题. 错误详情 “获取 Vi ...
- Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!
前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...
- ELK日志分析系统(4)-elasticsearch数据存储
1. 概述 logstash把格式化的数据发送到elasticsearch以后,elasticsearch负责存储搜索日志数据 elasticsearch的搜索接口还是很强大的,这边不详细展开,因为k ...
- C# 8 - Range 和 Index(范围和索引)
C# 7 的 Span C# 7 里面出现了Span这个数据类型,它可以表示另一个数据结构里连续相邻的一串数据,并且它是内存安全的. 例子: 这个图的输出是3,4,5,6. C# 8 的Range类型 ...
- MySQL 和 Navicat Premium 下载及安装全过程
前言: 我对 “MySQL社区版” 的理解是:它只是一个后台服务,它的管理需要用到其他的数据库管理软件,这里我用的是 Navicat Premium,这个软件可以同时为多个数据库提供管理,比如MySQ ...
- day 21作业
目录 一.定义一个类:圆形,该类有半径,周长,面积等属性,将半径隐藏起来,将周长与面积开放 二.使用abc模块定义一个phone抽象类 并编写一个具体的实现类 一.定义一个类:圆形,该类有半径,周长, ...
- 在chrome浏览器中调用IE浏览器并访问(openIE.reg自定义协议)
在谷歌浏览器中有4种方法调用IE浏览器.如下: c++ socket通过浏览器在ie中打开指定url : vb生成exe,url访问exe启动ie并打开指定url : 通过socket实现通过http ...
- KafkaStream简介
Kafka Streams 1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基于一 ...
- 2. spring 应用之IOC
本文是作者原创,版权归作者所有.若要转载,请注明出处 我们知道Spring Framework 最重要的功能就是IoC (Inversion of Control ),也叫DI(dependency ...
- Spring源码分析之IOC的三种常见用法及源码实现(二)
Spring源码分析之IOC的三种常见用法及源码实现(二) 回顾上文 我们研究的是 AnnotationConfigApplicationContext annotationConfigApplica ...