1.Docker安装
2.安装Nvidia-docker2
2.1 安装依赖项
sudo apt-get purge -y nvidia-docker
sudo apt autoremove
2.2 添加源
安装之前请先确保显卡驱动已经安装好了
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
2.2 安装NVIDIA Container Toolkit并重启Docker
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
2.3 测试
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
3.可能出现的问题
问题1:docker启动容器报错 Unknown runtime specified nvidia
报错信息
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: unknown or invalid runtime name: nvidia.
See 'docker run --help'.
报错的信息显示runtime=nvidia无法识别,这说明我得daemon.json配置文件出错,后来看到网上的博客,突然想起来,配置docker的阿里云镜像时,daemon.json文件被修改了。
解决方案
修改/etc/docker/daemon.json
(需要管理员权限),添加如下的内容:
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
修改后的文件整体信息如下:
{
"registry-mirrors": ["你的加速仓库地址"],
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
然后重启docker就好了:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
问题2:Unable to find image ‘nvidia/cuda:latest’ locally
报错信息
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Unable to find image 'nvidia/cuda:latest' locally
docker: Error response from daemon: manifest for nvidia/cuda:latest not found: manifest unknown: manifest unknown.
See 'docker run --help'.
命令中cuda后面填写的版本型号不存在,可以从文档中查找对应系统的版本型号。
解决方案
在https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md网址下查看对应的系统的版本号即可。
$ sudo docker run --runtime=nvidia --rm nvidia/cuda:11.0.3-base nvidia-smi
Unable to find image 'nvidia/cuda:11.0.3-base' locally
11.0.3-base: Pulling from nvidia/cuda
c549ccf8d472: Pull complete
cbb944094a69: Pull complete