前言
在docker中要使用GPU,需要安装Nvidia-docker2才可以,以下是详细过程:
一、添加源
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
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
三、测试
3.1 执行测试
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
执行上述命令会报错误
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Unable to find image ‘nvidia/cuda:latest’ locally
3.2 原因分析
Docker Hub中的CUDA, CUDAGL和OPENGL镜像已经弃用"latest"标签,直接使用
docker pull nvidia/cuda
或在Dockerfile中指定
FROM nvidia/cuda:latest
都会出现上述错误。
3.3 解决方法
在supported-tags中找到与自己系统对应的cuda版本,并将nvidia/cuda:latest中的latest改成对应的版本
例如:
nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04
3.4 查看nvdia-docker2安装情况
sudo apt show nvidia-docker2
显示如下:
Package: nvidia-docker2
Version: 2.11.0-1
Priority: optional
Section: utils
Maintainer: NVIDIA CORPORATION <cudatools@nvidia.com>
Installed-Size: 27.6 kB
Depends: nvidia-container-toolkit (>= 1.10.0-1), docker-ce (>= 18.06.0~ce~3-0~debian) | docker-ee (>= 18.06.0~ce~3-0~debian) | docker.io (>= 18.06.0) | moby-engine
Breaks: nvidia-docker (<< 2.0.0)
Replaces: nvidia-docker (<< 2.0.0)
Homepage: https://github.com/NVIDIA/nvidia-docker/wiki
Download-Size: 5,472 B
APT-Manual-Installed: yes
APT-Sources: https://nvidia.github.io/libnvidia-container/stable/debian9/amd64 Packages
Description: nvidia-docker CLI wrapper
Replaces nvidia-docker with a new implementation based on the NVIDIA Container Toolkit
N: 有 45 条附加记录。请加上 ‘-a’ 参数来查看它们