关于windows10/11 上使用docker19以上版本初始化cuda容器 --gpus all 选项使用后可以创建容器但是无法运行的解决方案(docker-container-cli初始化错误)

原因

在windows10/11上docker基于WSL运行,想使用gpu需使用WSL2,并在WSL2里安装驱动,nvcc -V以及nvidia-smi都有输出即可。

cuda本机安装后似乎不需要额外安装了,如果需要直接apt安装,用nvcc -V验证是否可以使用cuda,cuda版本建议去Nvidia的窗口查看支持版本,不要安装错了。安装错误需要先卸载。我的win11一直安装cuda不成功 是因为Nsight VSE(Visual Studio Edition)与VS2019冲突,卸载VS就行了,Visual Studio Intergration也不要安装。

安装WSL2

若想使用WSL2,需要Windows版本号大于2004,用windows易升即可。Windows里需要启动WSL功能。当然Hyper-V或虚拟机选项也要打开。这里不再赘述。这时候重启。

输入命令:

wsl --set-default-version 2

之后就安装成功,在Microsoft Store里搜索自己想要的版本,安装。

之后使用wsl -l -v验证是否为2版本。

安装NVIDIA 驱动

安装ubuntu-drivers-common后输入ubuntu-drivers devices,有输出就安装对应版本。

我是没有输出,不代表无法使用。去官网下载驱动,安装,软件会自动给WSL2安装上。Nvidia是有官方教程的,可以看一看。

这时候输入nvidia-smi我会显示连接驱动有问题(NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.)。

  1. 检查WSL内核(uname -a),低于一定版本不行,直接下载文件或者wsl.exe --update。重启一下虚拟机。
  2. 之后安装nvidia-docker2以及其他包。
curl https://get.docker.com | sh
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list

sudo apt-get update

sudo apt-get install -y nvidia-docker2

sudo apt install nvidia-container-toolkit

这时候输入nvidia-smi就有输出了,没有的话重启试试看。

这时候pull docker cuda的image,再创建就可以运行了,注意image的cuda的版本必须与Windows安装的版本一致。

你可能感兴趣的:(容器,windows,docker)