WSL2 Ubuntu 20.04.3 LTS 内核映像:5.10.60.1-microsoft-standard-WSL2
我正在尝试根据此处的说明安装 CUDA:https ://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2
docker: unrecognized service
运行命令时我收到一条消息sudo service docker stop
。我确实按照教程中的该命令的说明进行操作,并且运行结果sudo apt update && sudo apt install -y nvidia-docker2
似乎成功。我还尝试检查 docker 服务是否完全可用,service --status-all
但在结果中没有看到。
请帮我弄清楚如何正确安装 CUDA,我正在尝试为我正在从事的图像处理项目设置带有 GPU 支持的 opencv。
以下是我运行的上述命令的输出:
service --status-all
输出:
[ - ] apparmor
[ ? ] apport
[ - ] atd
[ - ] console-setup.sh
[ - ] cron
[ ? ] cryptdisks
[ ? ] cryptdisks-early
[ - ] dbus
[ ? ] hwclock.sh
[ + ] irqbalance
[ - ] iscsid
[ - ] keyboard-setup.sh
[ ? ] kmod
[ - ] lvm2
[ - ] lvm2-lvmpolld
[ - ] multipath-tools
[ + ] open-iscsi
[ - ] open-vm-tools
[ ? ] plymouth
[ ? ] plymouth-log
[ - ] procps
[ - ] rsync
[ - ] rsyslog
[ - ] screen-cleanup
[ - ] ssh
[ ? ] ubuntu-fan
[ + ] udev
[ - ] ufw
[ - ] unattended-upgrades
[ - ] uuidd
[ - ] x11-common
命令:
sudo apt update && sudo apt install -y nvidia-docker2
输出:
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/amd64 InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Hit:5 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64 InRelease
Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:7 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64 InRelease
Hit:8 https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64 InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree
Reading state information... Done
nvidia-docker2 is already the newest version (2.8.0-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我已经能够使用您链接的(显然已过时的)规范说明来重现此内容。
您可以
/var/log/apt/term.log
在安装docker.io
包的过程中看到问题:这与
service
命令尝试运行的初始化脚本相同。docker.io
据推测,它是在编写说明(并且可能有效)和现在之间的某个时间从包中删除的。这并不奇怪,真的。Ubuntu 使用 Systemd,并docker.io
为 Docker 服务安装 Systemd 单元文件。许多软件包过去还提供旧版 init 脚本。但是,WSL 不支持 Systemd(至少没有很多hackery)。最好有一个为
service
命令提供初始化脚本的 Docker 版本。要么,要么知道如何在 WSL 下自己开始。因此,让我们从卸载
docker.io
及其安装的依赖项开始:那么你有两个选择。任何一个:
为 Windows 安装 Docker 桌面。Docker Desktop 与 WSL 紧密集成,并提供了一些您在开源 Docker 版本中没有的不错的功能:
如果您在大公司中使用它,最近有一个许可证更改需要付费订阅。结果,有些人似乎想要摆脱它,但我建议(纯粹是我的观点)如果你为一家大公司工作,他们通常会为这些工具付费。而这反过来又有助于资助 Docker 的开源计划。
但是,如果您确实想使用开源版本,您可以使用(大部分)Ubuntu 的官方 Docker 说明来实现。
这些说明确实假定安装脚本将启动 Docker 守护程序。但是,它尝试使用在 WSL 上失败的 Systemd。但现在它确实提供了 init.d 脚本,因此您现在可以
sudo service docker start
像最初尝试的那样运行。或者,nVidia 提供了使用该脚本的设置说明。
get.docker.com