Windows 下让 Docker Desktop 关联上 NVidia GPU

这篇具有很好参考价值的文章主要介绍了Windows 下让 Docker Desktop 关联上 NVidia GPU。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景及动机

前面一篇写了《大数据及机器学习带 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 了,如果不解决掉这个问题,一切都是扯淡!

二、处理全过程

2.1、安装 WSL 2

此步必须运行 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 不让用,但不影响我们使用,设置就对了。

2.2、安装 Docker Desktop

此步太简单,傻瓜式安装,点击如下链接可前往下载,参考图紧随其它,如下所示:Install Docker Desktop on Windowshttps://docs.docker.com/desktop/install/windows-install/window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

装完后,默认路径在:C:\Program Files\Docker\

一般情况下,安装包没有跟上最新版本,同样也操作很多次了,直接最新,反正以后不想更新了。

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

2.3、开启 Docker 的 GPU

2.3.1、正式开始

首先就像是文章开头的那样的,先试一下报错:

$ 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 打开:

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

2.3.2、安装 nvidia 容器工具包

在该 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

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

2.3.3、配置 Docker Daemon

执行以下命令:

$ sudo nvidia-ctk runtime configure --runtime=docker

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

老实说,这没多大作用,重启也没有用,更好的办法是打开 Docker Desktop 如下操作之后,再重启:

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

2.3.4、完美解决

window docker 使用gpu,Docker ,机器学习,大数据,docker,容器,运维,windows,机器学习,大数据

三、扩展知识

3.1、Linux 包管理工具 Apt、Yum、Dnf 和 Zypper 有什么不同?

本文安装的时候使用了 Apt,后面三种也是可以的,如有需要,可去官方找资料。

3.1.1、所属发行版

  • Apt (Advanced Package Tool):主要用于 Debian 及其衍生发行版,如 Ubuntu、Linux Mint 等。
  • Yum (Yellowdog Updater, Modified):主要用于 Red Hat 系列发行版,如 CentOS、Fedora (早期版本)等。
  • Dnf (Dandified Yum):是 Yum 的升级版,主要用于较新的 Fedora 和 Red Hat Enterprise Linux 8 及以上版本。
  • Zypper:主要用于 SUSE 和 openSUSE 发行版。

3.1.2、命令语法

  • Apt 使用 apt-get、apt-cache 等命令进行包管理操作。
  • Yum 和 Dnf 使用 yum 和 dnf 命令进行包管理操作,语法基本相同。
  • Zypper 使用 zypper 命令进行包管理操作。

3.1.3、性能和速度

  • Dnf 相比 Yum 有更好的性能和速度,支持并发下载和安装包。
  • Apt 和 Zypper 的性能和速度也较为优秀。

3.1.4、依赖解析

  • Apt、Yum、Dnf 和 Zypper 都能够自动解析和处理包的依赖关系。
  • Dnf 在依赖解析方面有所改进,提供了更好的依赖解决方案。

3.1.5、软件仓库

不同的包管理工具使用不同的软件仓库配置文件和格式。

  • Apt 使用 /etc/apt/sources.list 和 /etc/apt/sources.list.d 目录下的文件。
  • Yum 和 Dnf 使用 /etc/yum.repos.d 目录下的 .repo 文件。
  • Zypper 使用 /etc/zypp/repos.d 目录下的 .repo 文件。

尽管这些包管理工具在语法和使用方面有所不同,但它们的基本功能和目的都是相似的,即方便地管理软件包的安装、升级和卸载等操作。选择哪个包管理工具主要取决于你使用的 Linux 发行版。

3.2、解释一下 nvidia 容器工具包

NVIDIA Container Toolkit 使用户能够构建和运行 GPU 加速的容器。该工具包括一个容器运行时库和一些实用工具,可以自动配置容器以利用 NVIDIA GPU。

那么使用 NVIDIA Container Toolkit 时有哪些优势:

  • 简化了在容器中使用 NVIDIA GPU 的过程。用户不需要手动安装 NVIDIA 驱动程序或修改容器镜像。
  • 提供了一致的方式来配置和部署 GPU 加速的容器,提高了可移植性和可重复性。
  • 与主流的容器运行时和编排工具(如 Docker、Kubernetes)兼容,便于集成到现有的容器化工作流中。

3.3、命令行中 docker --runtime 做什么用?

是 Docker 命令行中的一个选项,用于指定容器运行时期。容器运行时是负责创建和管理容器的底层软件。默认情况下,Docker 使用 runc 作为容器运行时。但是,通过 --runtime 选项,你可以指定使用其他的容器运行时,如 nvidia-container-runtime

当你使用  --runtime=nvidia  选项运行容器时期,Docker 将使用 NVIDIA Container Toolkit 提供的 nvidia-container-runtime 作为容器运行时期。这个特殊的运行时会自动配置容器,使其能够访问宿主机上的 NVIDIA GPU。

3.4、为什么我用了 Ubuntu?

因为微软的 WSL 相关文章有提及到:安装驱动程序后,请确保启用 WSL 并且还要安装基于 glibc 的发行版本(例如 Ubuntu 或 Debian)。

另外一个原因是 Ubuntu 使用的概率还是蛮高的,算是混个脸熟。文章来源地址https://www.toymoban.com/news/detail-846865.html

四、参考资料

  1. NVidia 官方文档站点
  2. Docker Desktop 官方站点
  3. 如何使用 WSL 在 Windows 上安装 Linux

到了这里,关于Windows 下让 Docker Desktop 关联上 NVidia GPU的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows10 Docker Desktop安装

    Docker Desktop 是 Docker 公司推出的一款桌面应用程序,它提供了一个用户友好的界面,方便开发人员在本地环境中使用容器技术。 容器是一种轻量级的虚拟化技术,可以将应用程序和其依赖项打包在一起,形成一个独立、可移植的运行单元。 Docker Desktop 允许开发人员使用 Dock

    2024年01月16日
    浏览(62)
  • Windows 11 安装 Docker Desktop

    WSL 全称是 Windows Subsystem for Linux ,适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。 简单的说就是 WSL 能让你在不安装 Linux 或者 VM (虚拟机)的情况下体验双系统

    2024年02月05日
    浏览(57)
  • Windows上安装Docker Desktop

    Windows 10 Docker Desktop 4.21.1 勾掉\\\"Use WSL 2 instead of Hyper-V(recommended)\\\"( 原因见小插曲2章节 ) 安装完成 运行Docker Desktop 配置镜像加速器(可选) 配置文件目录:ProgramDataDockerconfigdaemon.json(实际为USER_HOME/.docker/daemon.json) 查看 安装完成之后,运行docker version、docker info时,都提示

    2024年02月15日
    浏览(49)
  • Docker DeskTop的安装(Windows版本)

    目录 一、官网下载Docker安装包 二、安装Docker DeskTop 2.1 双击 Docker Installer.exe 以运行安装程序 2.2 安装操作 2.3 关于更改Docker安装位置 2.3.1 自定义安装路径(不推荐) 2.3.2 移动 Docker 镜像存储位置 三、启动Docker DeskTop Docker官网如下: Docker官网不同操作系统下载页面 https://d

    2024年02月01日
    浏览(45)
  • Docker Desktop 安装和使用 (Windows)

    下载地址 Download Docker Desktop | Docker 程序默认自动安装在C盘,如果想自定义盘符安装,需要在安装前 删除如下目录 C:Program FilesDocker 在D盘新建目录 D:Program FilesDocker 以管理员身份运行cmd (Win+r 输入 cmd Ctrl+Shift+Enter) 在cmd中执行如下命令 mklink /j \\\"C:Program FilesDocker\\\" \\\"D:Program F

    2024年02月12日
    浏览(62)
  • wind按照docker desk启动报错Docker Desktop Docker Desktop - Windows Hypervisor is not present Docker Des

    1.启动bios 打开虚拟化 2.程序和功能  启用hyperv    3.没有上面的hyperv使用如下命令 回车y重启电脑

    2024年02月08日
    浏览(46)
  • 【Docker】Docker Desktop配置资源:cpu、内存等(windows环境下)

    Docker 是指容器化技术,用于支持创建和使用 Linux® 容器(LXC技术) 。 我们在 Window 上安装 Docker Desktop ,需要基于 Linux 环境。 在 Windows上,Docker Desktop 为我们提供通过了两个选项:WSL 与 Hyper-V 。 1.WSL2和hyper-v区别 简单来说: wsl是一个运行在我下面的解释linux命令的程序,可

    2024年02月09日
    浏览(60)
  • 初识Docker Desktop for Windows10

    Docker是什么?我想这就不需要过多的解释了,容器的使用带来的应用环境的相互隔离优点也是它能风靡全球,作为云原生技术之一,广泛应用的原因。 我们都知道Windows操作系统,上手容易,但使用时间长了之后,就会出各种古怪的问题,应用残留、软件冲突诸多问题,最后

    2024年02月03日
    浏览(37)
  • Windows如何卸载并重装Docker Desktop

    首先是要卸载干净,把把  C:/Program Files/Docker  删除,发现没卸载干净,重装会提示 Exising installation is up to date (感谢BigNiu博主给出的解决办法) 之后就是重装,默认路径是C盘,参考官方文档换一个路径 在 Windows 上安装 Docker Desktop |码头工人文档 提前在E盘或者D盘新建Progr

    2024年02月03日
    浏览(97)
  • windows11启动docker报错:Docker Desktop - Unexpected WSL error

    问题描述 windows11启动docker(版本为4.26.1)报错: Docker Desktop - Unexpected WSL error An unexpected error was encountered while executing a WSL command. Common causes include access rights issues, which occur after waking the computer or not being connected to your domain/active directory. Please try shutting WSL down (wsl -shutdown) and/or

    2024年04月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包