在docker19以前都需要单独下载nvidia-docker1或nvidia-docker2来启动容器,自从升级了docker19后跑需要gpu的docker只需要加个参数–gpus all 即可

为了让docker支持nvidia显卡,英伟达公司开发了nvidia-docker。该软件是对docker的包装,使得容器能够看到并使用宿主机的nvidia显卡。

为什么我的本机CUDA版本是10.0 而docker中是cuda9.0却也能够跑起来

一般来说,一台机器只能有一个版本的驱动(nvidia-smi中显示的Driver Version),然而CUDA是可以多版本共存的,使用docker镜像或anaconda虚拟环境可以隔开不同的版本

所以,我本机的Driver Version是430.64

docker run gpu docker run gpus device_jvm

理论上说10.1及以下的cuda都可以装

# 使用所有GPU
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi

# 使用两个GPU
$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi

# 指定GPU运行
$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
$ docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi
这里nvidia/cuda:9.0-base是nvidia官方提供的docker镜像