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
複製代碼