Docker官方起步指南学习笔记⑥——nvidia-docker在19.03+版本下的安装

Docker官方起步指南学习笔记⑥——nvidia-docker在19.03+版本下的安装

九月 19, 2019
当前设备屏幕尺寸过小,推荐使用PC模式浏览。

新旧Docker的差异

本文中的docker默认为CE版,即社区版;对于个人或小型实验室而言已然足够。

现在不少网上的教程对新版dockernvidia-docker的安装已经不再适用了,最大的区别在于nvidia-docker2已经被废弃,nvidia-docker已经支持原生的docker虚拟设备。

最直观的体验就是——你不再需要使用nvidia-docker指令来进行docker指令操作,一旦安上了最新版的dockernvidia-docker软件包,你的所有docker镜像/容器都将拥有使用N系GPU的权利。

需要注意的是:

  1. 你的Linux系统中应当装好了NVIDIA的驱动;
  2. 你的docker版本在19.03+;

你可以使用docker -v指令来检查你的docker版本。如果版本过于落后,请使用:

1
sudo apt-get remove docker docker-engine docker.io containerd runc

移除旧版docker(该指令不会移除系统中现有的配置文件、镜像和容器)。

如果你安装过旧版的nvidia-docker,你可能还需要执行以下命令:

1
sudo apt-get remove nvidia-docker nvidia-docker2 docker-ce

此外,如果你有强迫症,还可以移除旧版的依赖包(此操作为可选项,毕竟删了可能待会儿换新版还要再装回来):

1
sudo apt-get autoremove docker

如果要还要移除镜像和容器,请直接移除/var/lib/docker目录下的文件;使用apt-get purge <包名>移除配置文件。

安装新版docker

以下安装针对19.03.2版本(2019.9月最新)左右的docker for ubuntu,不同版本请查看:
Get Docker Engine - Community for Ubuntu

如果你之前没有安装过docker或移除了旧版本的docker,你需要使用以下指令进行它的安装:

  1. 以防万一,先更新软件索引:
1
sudo apt-get update
  1. 安装一些附属包,允许apt使用HTTPS安装软件:
1
2
3
4
5
6
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
  1. 下载、添加官方的GPG密钥:
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 选择stable版本的apt仓库:(注意:此处仅针对Ubuntu x86_64/amd64,不同版本或系统位数请上开头给出的官方文档查看)
1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
  1. 更新apt仓库的索引并安装:
1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 运行hello-world测试:
1
sudo docker run hello-world

(Options)设置国内仓库

以Ubuntu和阿里云镜像库为例:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [你的阿里云镜像地址]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装新版nvidia-docker

新版nvidia-docker的十分简便,从安装到测试只有两个步骤:(以Ubuntu 16.04/18.04为例)

  1. (Ubuntu 16.04/18.04)添加apt仓库地址、密钥和nvidia工具集:
1
2
3
4
5
6
7
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
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
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
  1. 测试是否安装成功(前提是已经安装显卡驱动):
1
docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

理论上应该会打印你的显卡信息。