[docker]升级docker19.03使用nvidia-container-toolkit

(更新于 )

升级docker19.03使用nvidia-container-toolkit docker升级到19.03以后,nvidia将提供原生的显卡支持,只需要安装 nvidia-container-toolkit工具包即可, 不再像使用nvidia-docker/2那样复杂配置,而且不支持用docker-compose 安装步骤 1.确认本机nvidia驱动安装正确,cuda和cudnn配置正常,官方文档说可以不需要在host配置cuda, 2.安装docker,可以参考,主要安装19.03以后的版本 https://docs.docker.com/engine/install/ubuntu/ 3.添加nvidia-docker的源



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

4.使用以下命令安装nvidia-container-toolkit,重启docker



sudo apt-get install -y nvidia-container-toolkit
#restart docker
sudo systemctl restart docker

5.如果本机已安装nvidia-docker2,可以单独完成安装nvidia-container-toolkit,且相互不影响, 官方虽然已经宣布nvidia-docker2 deprecated了,但是继续使用是没问题的 使用上的主要区别 使用nvidia-container-toolkit



#使用nvidia-container-toolkit
docker run --gpus "device=1,2"

使用nvidia-docker2



#使用nvidia-docker2,已deprecated,但是还能继续用
docker run --runtime=nvidia

使用nvidia-docker



#使用nvidia-docker
nvidia-docker run

几个坑 1. nvidia-container-toolkit和nvidia-docker2的容器image位置不一样且不通用,如果要混用,需要根据需要选择不同版本的容器 2.nvidia-container-toolkit的多显卡支持目前测试没成功,容器跑最好还是单个显卡吧。可能跟host配置有关 参考 https://docs.nvidia.com/deeplearning/frameworks/user-guide/index.html https://docs.nvidia.com/ngc/ngc-aws-setup-guide/running-containers.html#preparing-to-run-containers https://github.com/NVIDIA/nvidia-docker https://nvidia.github.io/nvidia-docker/