
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.
答え1
リンクされた(明らかに古い)Canonical の手順を使用して、これを再現できました。
/var/log/apt/term.log
パッケージのインストール中に問題を確認できますdocker.io
。
invoke-rc.d: unknown initscript, /etc/init.d/docker not found.
service
これはコマンドが実行しようとするのと同じinitスクリプトです。おそらく、docker.io
この手順が書かれた時点(おそらく有効)から現在までの間にパッケージから削除されたのでしょう。これは驚くことではありません。UbuntuはSystemdを使用し、docker.io
Dockerサービス用のSystemdユニットファイルをインストールします。多くのパッケージはまたレガシー init スクリプトを提供します。
ただし、WSL は Systemd をサポートしていません (少なくとも、かなりのハッキングなしでは)。service
コマンドの init スクリプトを提供する Docker バージョンを使用する方がはるかに優れています。または、WSL で独自に起動する方法を知っているものを使用してください。
docker.io
それでは、インストールされた依存関係をアンインストールすることから始めましょう。
sudo apt remove docker.io
sudo apt autoremove
その場合、2 つのオプションがあります。次のいずれかです。
Windows 用 Docker デスクトップをインストールするDocker Desktop は WSL と緊密に統合されており、オープンソースの Docker バージョンでは得られない便利な機能をいくつか提供します。
- 複数のWSL2インスタンス間で共有可能
- PowerShellとCMDから実行できます
- コンテナとボリュームのGUIダッシュボードを提供します
- 自動アップグレードに対応しています(ただし、必ずしも利点とは考えない人もいるかもしれません)
- これは、以下の他のすべての処理を自動的に処理する便利な方法です。
最近、ライセンスが変更され、大企業で使用する場合は有料サブスクリプションが必要になりました。その結果、一部の人々はそれを避けたいようですが、私は(完全に私の意見ですが)大企業で働いている場合、これらの種類のツールにお金を払ってくれることが多いと思います。そして、それは Docker のオープンソース イニシアチブの資金に役立ちます。
ただし、オープンソース版を使用したい場合は、(ほとんどの場合)Ubuntu用の公式Dockerの説明書。
これらの手順では、インストール スクリプトが Docker デーモンを起動することを前提としています。ただし、Systemd を使用しようとするため、WSL では失敗します。ただし、現在は init.d スクリプトが提供されているため、
sudo service docker start
当初試したとおりに実行できるようになりました。あるいは、nVidiaはセットアップ手順スクリプトを使用するもの
get.docker.com
。