赞
踩
前面一篇写了《大数据及机器学习带 GPU 必须干的第一件事》,心想如果不让容器也来第一件事,怪痒痒的难受。如果你的电脑像下面一样不支持,那就要来好好看看了:
- $ docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
- docker: Error response from daemon: unknown or invalid runtime name: nvidia.
- See 'docker run --help'.
关键环境就在于 --runtime=nvidia 了,如果不解决掉这个问题,一切都是扯淡!
此步必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。
之前有重装过很多次,有那么几次 wsl 命令自动带了,要看操作系统了,下面检查一下:
$ wsl -l -v
如果支持上面的命令正常打印出信息,就不用考虑安装,如果不正常,就请如下:
$ wsl --install
安装完成后,它默认就是 WSL 2,可能有朋友们想要第 1 版,本文在这里不讲述了,主要是 WSL 2 用了很久了,没啥太大问题。
紧接着就安装 Ubuntu 20.04,如果有想用最新的,可以考虑 Ubuntu 22.04。
$ wsl --install -d Ubuntu-20.04
安装完成后,会出现输入账号和密码,因为 root 不让用,但不影响我们使用,设置就对了。
此步太简单,傻瓜式安装,点击如下链接可前往下载,参考图紧随其它,如下所示:Install Docker Desktop on Windowshttps://docs.docker.com/desktop/install/windows-install/
装完后,默认路径在:C:\Program Files\Docker\
一般情况下,安装包没有跟上最新版本,同样也操作很多次了,直接最新,反正以后不想更新了。
首先就像是文章开头的那样的,先试一下报错:
- $ docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
- docker: Error response from daemon: unknown or invalid runtime name: nvidia.
- See 'docker run --help'.
接着由于前面的工作到位,请使用 WSL 命令行窗口把 Ubuntu-20.04 打开:
在该 Linux 环境下使用 Apt 方式去安装,输入以下命令:
- $ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
- && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
- sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
- sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
-
- $ sudo apt-get update
这个时候,会发现第 3 条命令会出现错误:
- $ sudo apt-get install -y nvidia-container-toolkit
- /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
没有关系,重启电脑吧,或者你可以用骚动作,比如重启 Docker Desktop,一般可以,但不保证。再次执行,正常了!
$ sudo apt-get install -y nvidia-container-toolkit
执行以下命令:
$ sudo nvidia-ctk runtime configure --runtime=docker
老实说,这没多大作用,重启也没有用,更好的办法是打开 Docker Desktop 如下操作之后,再重启:
本文安装的时候使用了 Apt,后面三种也是可以的,如有需要,可去官方找资料。
不同的包管理工具使用不同的软件仓库配置文件和格式。
尽管这些包管理工具在语法和使用方面有所不同,但它们的基本功能和目的都是相似的,即方便地管理软件包的安装、升级和卸载等操作。选择哪个包管理工具主要取决于你使用的 Linux 发行版。
NVIDIA Container Toolkit 使用户能够构建和运行 GPU 加速的容器。该工具包括一个容器运行时库和一些实用工具,可以自动配置容器以利用 NVIDIA GPU。
那么使用 NVIDIA Container Toolkit 时有哪些优势:
是 Docker 命令行中的一个选项,用于指定容器运行时期。容器运行时是负责创建和管理容器的底层软件。默认情况下,Docker 使用 runc
作为容器运行时。但是,通过 --runtime
选项,你可以指定使用其他的容器运行时,如 nvidia-container-runtime
。
当你使用 --runtime=nvidia
选项运行容器时期,Docker 将使用 NVIDIA Container Toolkit 提供的 nvidia-container-runtime
作为容器运行时期。这个特殊的运行时会自动配置容器,使其能够访问宿主机上的 NVIDIA GPU。
因为微软的 WSL 相关文章有提及到:安装驱动程序后,请确保启用 WSL 并且还要安装基于 glibc 的发行版本(例如 Ubuntu 或 Debian)。
另外一个原因是 Ubuntu 使用的概率还是蛮高的,算是混个脸熟。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。