docker: CUDA のインストール時に認識されないサービス

docker: CUDA のインストール時に認識されないサービス

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.ioDockerサービス用の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

関連情報