nvidia-docker是一个可使用GPU的docker,nvidia-docker是在docker上作了一层封装,经过nvidia-docker-plugin,而后调用到docker上,其最终实现的仍是在docker的启动命令上携带一些必要的参数。所以在安装nvidia-docker以前,仍是须要安装docker的。node
docker通常都是使用基于CPU的应用,而若是是GPU的话,就须要安装特有的硬件环境,好比须要安装nvidia driver。因此docker容器并不直接支持Nvidia GPU。为了解决这个问题,最先的处理办法是在容器内部,所有从新安装nvidia driver,而后经过设置相应的设备参数来启动container,然而这种办法是很脆弱的。由于宿主机的driver的版本必须彻底匹配容器内的driver版本,这样致使docker image没法共享,极可能本地机器的不一致致使每台机器都须要去重复操做,这很大的违背了docker的设计之初。linux
为了使docker image能很便利的使用Nvidia GPU,从而产生了nvidia-docker,由它来制做nvidia driver的image,这就要求在目标机器上启动container时,确保字符设备以及驱动文件已经被挂载。docker
安装nvidia-docker2须要dokcer_ce*json
yum remove docker docker-common docker-selinux docker-engine
复制代码
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
# yum list docker-ce --showduplicates | sort -r
# yum install docker_ce
复制代码
# systemctl start docker
# systemctl enable docker
复制代码
# yum install nvidia-docker2
# pkill -SIGHUP dockerd
复制代码
使用nvidia-docker2须要宿主机上面nvidia的驱动安装完成centos
[root@t91 ~]# cat /etc/docker/daemon.json
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
复制代码
# nvidia-docker run -itd --name node1 --hostname node1 centos:7.5.1804 /usr/sbin/init
# docker exec -it node1 /bin/bash
复制代码