安装nvidia-docker

前言

本文主要介绍安装docker-ce与nvidia-docker的过程。注意不是docker.io, 因为nvidia-docker是基于docker-ce的,ce比io要新。

安装docker-ce

安装软件包以允许apt通过HTTPS使用存储库:

1
2
3
4
5
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

添加Docker的官方GPG密钥

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

设置稳定的存储库

1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

更新apt软件包索引

1
sudo apt-get update

安装最新版本的Docker CE

1
sudo apt-get install docker-ce

测试docker-ce

1
sudo docker run hello-world

安装nvidia-docker

增加nvidia-docker存储库

1
2
3
4
5
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

1
sudo apt-get install nvidia-docker2

重启docker

1
sudo service docker restart

测试nvidia-docker

确认是否已经安装nvidia-docker

1
nvidia-docker

没有报错就表明安装成功

将当前用户加入docker组

1
2
3
4
5
6
sudo usermod -aG docker $USER
sudo service docker restart
# 重新登录
sudo su
exit

加入docker组是为了不用sudo命令也行运行docker。

在ubuntu16.04上测试正常,但是在ubuntu18.04上发现不行,测试运行newgrp docker可以。该命令是用新用户组重新登录,将它写入~/.bashrc就可以实现自动登入docker用户组。

拉取合适的image

测试时使用deepo,这是一个比较全的深度学习环境,支持gpu和cpu版本,支持几乎所有的深度学习工具,支持cuda的版本为8.0-10.0
image.png

运行下面的命令会拉取最新的image,但是有10G大小,我们可以找到合适的tag,只拉取我们需要的版本。

1
docker pull ufoym/deepo

下面是适合cuda8的keras & tensorflow环境

1
docker pull ufoym/deepo:keras-py36-cu80

运行交互shell

常规命令运行(docker run …)是不行的,我们要带上前缀,即nvidia-docker run …

1
nvidia-docker run --rm -it ufoym/deepo:keras-py36-cu80 bash

输入测试程序

进入python环境

1
python

输入代码

1
2
3
4
5
import tensorflow as tf
a = tf.constant('hello world')
sess = tf.Session()
sess.run(a)
sess.close()

尝试其他docker image

由nvidia提供,内容丰富,包含了tensorflow,pytorch以及matlab

2114

TODO:

  • [ ] 增加设置docker用户组的链接
  • [ ] 增加设置docker registry-mirrors的链接
0%