ubantu16.04平台下docker+cuda+nvidia docker+tensorflow深度学习环境搭建 - qq_28447753的博客 - CSDN博客

首先,先说一下我走的弯路。
一开始我的nvidia显卡驱动安装的是官网下载的NVIDIA-Linux-x86_64-390.67.run,即390版本,cuda安装的9.2版本,并且安装好nvidia-docker,结果输入nvidia-docker run --rm nvidia/cuda nvidia-smi出现如下错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"process_linux.go:385: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=9.0 --pid=1820 /var/lib/docker/overlay2/411ceb61ef509e53e1938ce2c997fcf979c54a4b3e9863debcab1a3fa8da67da/merged]\\\\nnvidia-container-cli: initialization error: cuda error: unknown error\\\\n\\\"\"": unknown.
“`
谷歌之后据国外玩家说是版本兼容的问题。于是又重新卸载nvidia驱动和cuda,更换版本重新安装。网上找到有教程是用cuda9.0版本的,于是参考教程走了一遍,下面是我的操作步骤。

1.先卸载已安装的nvidia驱动和cuda

卸载nvidia驱动
sudo ./NVIDIA-Linux-x86_64-390.67.run --uninstall
卸载cuda
`sudo apt-get remove cuda
sudo apt-get autoclean`
查看安装了哪些cuda相关的库
sudo dpkg -l |grep cuda
删除的已安装的库,要注意版本
sudo dpkg -P cuda-repo-ubuntu1604-9-1-local_9.1.85-1_amd64

2.安装cuda9.0

CUDA9.0下载地址:点此跳转至下载页

将安装文件
进入到安装文件所在目录中,依次执行一下命令:
`sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda`
再CUDA完成安装之后,还需要添加环境变量,打开终端,输入下面的命令:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
如果是64位系统,再输入:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
如果是32位系统,再输入:
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

上述过程完成了整个的CUDA9.0的安装,可以使用命令nvcc -V查看cuda版本
这里写图片描述
此时显卡驱动也自动安装好了,为cuda自带的版本。可以通过命令cat /proc/driver/nvidia/version查看显卡驱动版本,也可以使用命令nvidia-smi查看显卡驱动详细信息。如出现下图类似结果说明安装成功。
这里写图片描述

3.安装docker

若先前有安装docker需要先卸载(若没有安装过则无需执行),执行命令:
sudo apt-get remove docker docker-engine docker.io
Docker的安装有多个方式,这里以最常见的方式为例。首先依次执行以下命令(反斜杠\代表一行,只是换行写更清晰),把docker仓库加进到apt里:
sudo apt-get update

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

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

sudo apt-key fingerprint 0EBFCD88

`sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"`
正式安装docker:
`sudo apt-get update
sudo apt-get install docker-ce
apt-cache madison docker-ce
sudo docker run hello-world`
最后一个命令是验证docker是否安装成功,它会下载并执行hello-world镜像。如果安装正确,应该可以正确执行。

4.安装NVIDIA-Docker

安装完成docker并检查安装正确(能跑出来hello-world)后,如果需要docker容器中有gpu支持,需要再安装NVIDIA-Docker。依次执行命令:
`wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker.deb && rm /tmp/nvidia-docker.deb`
Test nvidia-smi 验证是否安装成功
nvidia-docker run --rm nvidia/cuda nvidia-smi
上面最后一条命令是检查是否安装成功,安装成功,则会显示关于GPU的信息,类似前面的一个截图:
这里写图片描述

5.下载使用TensorFlow镜像

根据需要的版本下载tensorflow镜像并开启tensorflow容器:
CPU版本
docker run -it -p 8888:8888 tensorflow/tensorflow
GPU版本
nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu

执行以上命令的结果类似如下:
这里写图片描述

6.如何使用

打开浏览器,输入http://ip:8888,可以打开docker容器中的Jupyter服务的登陆页面,如下:
这里写图片描述
输入刚刚token后面的值后,点击login会看到一下画面:
这里写图片描述
点击第一个1_hello_tensorflow.ipynb,然后可以选择执行所有代码(见下图):
这里写图片描述
看到有输入输出,说明成功了
这里写图片描述


Original url: Access
Created at: 2019-04-15 19:06:15
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论