Docker Desktop 中使用GPU
2021-06-12
端午放假,没有回家,配置了一下环境,实现了在Windows 系统下 Docker Desktop 容器中使用GPU。记录一下过程。
据说在docker 容器内使用GPU属于显卡透传。
环境需求和软件版本
我的环境如下:
- win10 版本21390
- WSL2 5.4.72
- Docker Desktop 20.10.7
- CUDA driver for WSL2 470.76,同时 CUDA Version: 11.4
- 显卡:NVIDIA GeForce 1060
说明
一开始,在docker容器中使用GPU,需要在宿主机安装nvidia-docker。且在启动容器的时候使用 --runtime=nvidia选项。
nvidia-docker 是英伟达官方的项目,只支持Linux系统,所以windows上不能实现。
到了 19.03 版本,Docker 提供了对GPU的原生支持(同时 nvidia-docker 就过时了)。
这个时候docker 内置的gpu支持,需要安装 nvidia-container-runtime,然后启动容器的时候带上 --gpus all 参数(代替了
旧参数–runtime=nvidia),就像这样 docker run -it --rm --gpus all ubuntu nvidia-smi
。
Q. Linux 下呢?
ps:这两段信息是从别处看到的,仅供参考。
现在(2021-06-12),Win10 + WSL2 + Docker Desktop + CUDA driver for WSL2 就能用了。
注:
- 只需要在宿主机上安装 CUDA for WSL2 驱动,不用其它cuda驱动
- 不需要在 WSL2 中安装任何 CUDA 驱动,win10安装 CUDA for WSL2 驱动之后,wsl2 内会自动有对应的驱动。
- 不需要在 WSL2中安装dockerd,因为最新的 Docker Desktop 支持使用 WSL2 backend,用 WSL2 backend,启动的容器不需要额外配置就能
直接访问到GPU。
安装过程
安装之前,我电脑已经启用了WSL2,并安装了 Docker Desktop 20.10.7,Window是版本是专业版 19043。以此为起点,我的环境还差两步:
- 安装 CUDA for WSL2 驱动
- 把 Windows 10 升级到 21390
这两步不分先后,先执行哪个都一样。
安装 CUDA for WSL2 驱动
从CUDA for WSL2下载驱动,根据显卡类型(GEFORCE 或者 QUADRO )选择对应的下载链接。
这个驱动还不是正式发行版。下载这个驱动需要注册账号。下载完成后点击执行,安装完成后重启系统。
升级win10到 21390
按微软官网的操作步骤进行Windows Insider。
当前(2021-06-12)windows 最新的稳定发布版是 19043,而显卡透传需要升级到 windows 21332,这是个测试版。
当前最新的测试版是 21390。
基本步骤是:
- 在微软官网注册 Windows Insider Program 账号,注册地址:
Windows Insider,注册完成后登录。注册的时候可以使用已有的
windows账号。 - 在windows系统打开
菜单路径:Settings > Update & Security > Windows Insider Program,点击 Get St