安装nvidia-docker2
2018-11-07 22:36:03 +08 字数:843 标签: Linux Docker为什么要用nvidia-docker2? ¶
一个浅显的原因是,nvidia-docker
已经被官方废弃了。
最大的原因是,nvidia-docker
作为Docker的一个包装,需要运行一个独立的daemon,与Docker的生态不能很好地兼容。
比如,docker-compose
、docker swarm
与Kubernetes,都不能很好的和nvidia-docker
一起工作。
nvidia-docker2
解决了这些问题,甚至能在非官方CUDA镜像以外的镜像工作。
nvidia-docker
是一个Volume Plugin,而nvidia-docker2
则是一个Docker Runtime,机制的差异,带来了巨大的改进。
安装nvidia-docker2 ¶
Debian-based distributions ¶
以下是基于Debian系的安装方法:
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
具体到Ubuntu 16.04来说,nvidia-docker.list
就是如下内容:
deb https://nvidia.github.io/libnvidia-container/ubuntu16.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-container-runtime/ubuntu16.04/$(ARCH) /
deb https://nvidia.github.io/nvidia-docker/ubuntu16.04/$(ARCH) /
RHEL-based distributions ¶
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
红帽系的,孤没用过,以上仅为官方样例。
配置nvidia-docker2 ¶
安装后,需要配置新的Docker Runtime。
同时,也需要把默认的Runtime设为nvidia
。
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia",
...
}
以上内容加入/etc/docker/daemon.json
文件中,然后重启dockerd
。
sudo systemctl restart docker
对不需要GPU资源的应用来说,这样设了也不会有问题,除非它依赖另一个Runtime。
如果没有default-runtime
的配置,在运行时添加一个参数--runtime
,也能使容器可以访问GPU资源。
docker run --runtime nvidia ...
APT证书验证问题 ¶
某些公司的内网,环境及其恶劣,证书验证不一定能通过。
把一下一行添加到/etc/apt/apt.conf
中,可以确保apt update
时不出问题。
Acquire::https::nvidia.github.io::Verify-Peer "false";
参考 ¶
- About version 2.0 · NVIDIA/nvidia-docker Wiki
- Repository configuration | nvidia-docker
- Installation (version 2.0) · NVIDIA/nvidia-docker Wiki
- Accessing GPUs from a Docker Swarm service
- Upgrading to the NVIDIA Container Runtime for Docker :: DGX Systems Documentation
- dockerd | Docker Documentation
- Getting “server certificate verification failed” during apt-get update - Ask Ubuntu
- ubuntu - Using a self-signed SSL cert for an HTTPS-based internal APT repository - Server Fault