docker 1.12.6 使用GPU

℡╲_俬逩灬. 提交于 2019-12-04 08:37:05

docker 使用GPU最简单的方式是利用nvidia-docker,然而docker 1.12.6在安装nvidia-docker2的过程中,会出现冲突:

Transaction check error:
file /etc/docker/daemon.json from install of nvidia-docker2-2.0.2-1.docker1.12.6.noarch conflicts with file from package docker-2:1.12.6-71.git3e8e77d.el7.x86_64

其实,在容器内使用GPU并不需要安装nvidia-docker2,只需要安装nvidia-container-runtime,并在/etc/docker/daemon.json中配置好,就可以了。

下面在Centos 7.4 环境下,系统已安装docker 1.12.6(安装方法见:Centos 7.4安装、配置指定版本的Docker)的情况下,安装nvidia-container-runtime,然后在容器中运行GPU。

1. 添加包repositories:

$ 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
2.搜索repositories中包含的nvidia-container-runtime版本。
$ yum search --showduplicates nvidia-container-runtime

ubuntu使用:

$ apt-cache madison nvidia-container-runtime

3. 安装nvidia-container-runtime,注意加上--setopt=obsoletes=0,否则yum会自动安装更高版本的nvidia-container-runtime。

$ sudo yum --setopt=obsoletes=0 install nvidia-container-runtime-1.1.0-1.docker1.12.6.x86_64

如上图,确认版本正确,选择“y”,继续安装。

4.安装成功后还需要配置/etc/docker/daemon.json文件:

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

5.重启docker服务:

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker.service
$ sudo systemctl status docker.service

请确定docker的status正常running。

6. 验证:

$ docker run --rm nvidia/cuda nvidia-smi

这条指令会拉取nvidia/cuda:latest的镜像,拉取的过程可能会比较长,如果本地有其他可以运行GPU的镜像,都可以用来测试。镜像下载完成后,会在容器中运行nvidia-smi指令,如果正常输出,没有报错,则安装成功。 “--rm”参数使容器退出后自动删除该任务。


参考:

[1] https://github.com/NVIDIA/nvidia-docker#quickstart

[2] https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(version-2.0)#installing-version-20

[3] https://github.com/NVIDIA/nvidia-docker/issues/670

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!