docker 显卡使用

nvidia-docker简介

  • nvidia-docker是一个可以使用GPUdockernvidia-docker是在docker上做了一层封装。
  • 随着英伟达对 nvidia-docker不断优化与更新,目前为止,已发布发布两个大的稳定版本。nvidia-docker 和 nvidia-docker2

nvidia-docker1 和nvidia-docker2 区别

  • 版本1是一个整体的可行性文件,内部实现连接docker容器与硬件GPU;版本2将整体部分拆分层一个基于docker的薄封装(cat /usr/bin/nvidia-docker 可查看)和一个插件(nvidia-container-runtime , 该插件直接实现一个 hook的功能,连接GPU硬件)。

  • 在版本2 的nvidia-docker 可发现,实际上还是运行docker ,只是指定了 --runtime 参数,同时指定GPU设备,默认全部GPU设备。

  • 版本1 必须用nvidia-docker run/create 启动, 版本二可通过设置 守护进行default-runtime参数可直接通过 docker run/create 直接启动GPU容器

docker的守护进程参数配置一般在文件 /etc/docker/daemon.json

配置默认的插件环境后:
{
    "default-runtime" : "nvidia",
 
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

配置完成后,重启docker  

systemctl restart docker

然后调用 docker run/create 启动容器即可, 注意 前提需要安装 nvidia-container-runtime插件(安装完成后,可在/usr/bin 下发现文件 nvidia-container-runtime, 其实 配置文件的 nvidia path参数 实际为 、/usr/bin/nvidia-container-runtime  去掉路径,因为系统环境变量已设置)

安装

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
 
# 测试一下。 Test nvidia-smi with the latest official CUDA image
sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

不安装nvidia-docker2或不执行上面的指令 会报错:docker: Error response from daemon: Unknown runtime specified nvidia.

运行自己的docker

 docker pull nvidia/cuda:10.1-devel-ubuntu18.04



docker run --runtime=nvidia --name alg-server -v /etc/localtime:/etc/localtime -v /home/xzw:/share --net host -itd  nvidia/cuda:10.1-devel-ubuntu18.04 /bin/bash

# 进入docker测试
nvidia-smi

上面是没有cudnn的版本,我们安装cudnn

apt-get install -y --no-install-recommends libcudnn7-dev=7.6.5.32-1+cuda10.1

也可以直接拉取cudnn版

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×