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그리고 command 를 실행할 때 메시지가 나타납니다 sudo service docker stop. 나는 이 명령이 튜토리얼에 있는 지점까지 지침을 따랐으며 실행 결과는 sudo apt update && sudo apt install -y nvidia-docker2성공한 것 같습니다. 또한 도커 서비스가 사용 가능한지 확인하려고 시도했지만 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. 아마도 docker.io지침이 작성된 시점(그리고 아마도 유효한 시점)과 지금 사이에 패키지 에서 제거되었을 것입니다 . 정말 놀라운 일이 아닙니다. Ubuntu는 Systemd를 사용하고 docker.ioDocker 서비스용 Systemd 단위 파일을 설치합니다. 많은 패키지가 사용되었습니다.또한레거시 초기화 스크립트를 제공하십시오.

그러나 WSL은 Systemd를 지원하지 않습니다(적어도 많은 해커가 없다면). 명령 에 대한 초기화 스크립트를 제공하는 Docker 버전을 사용하는 것이 훨씬 좋습니다 service. 또는 WSL에서 자체적으로 시작하는 방법을 아는 것입니다.

docker.io이제 설치한 종속성을 제거하고 시작하겠습니다 .

sudo apt remove docker.io
sudo apt autoremove

그러면 두 가지 옵션이 있습니다. 어느 하나:

  • Windows용 Docker Desktop 설치. Docker Desktop은 WSL과 긴밀하게 통합되어 있으며 오픈 소스 Docker 버전에서는 제공되지 않는 몇 가지 유용한 기능을 제공합니다.

    • 여러 WSL2 인스턴스 간에 공유할 수 있습니다.
    • PowerShell 및 CMD에서 실행할 수 있습니다.
    • 컨테이너 및 볼륨의 GUI 대시보드를 제공합니다.
    • 자동 업그레이드를 처리합니다(일부는 이것이 반드시 장점이라고 생각하지 않을 수도 있음).
    • 아래의 다른 모든 항목을 자동으로 처리하는 편리한 방법입니다.

    최근 대기업에서 사용하는 경우 유료 구독이 필요한 라이선스 변경이 있었습니다. 일부 사람들은 결과적으로 이 도구에서 벗어나고 싶어하는 것 같지만, 저는 (순전히 내 의견입니다) 대기업에서 일한다면 이러한 종류의 도구에 대한 비용을 지불할 것이라고 제안하고 싶습니다. 그리고 이는 Docker의 오픈 소스 이니셔티브에 자금을 지원하는 데 도움이 됩니다.

  • 그러나 오픈 소스 버전을 사용하고 싶다면 (대부분) 다음을 사용하여 그렇게 할 수 있습니다.Ubuntu의 공식 Docker 지침.

    이러한 지침에서는 설치 스크립트가 Docker 데몬을 시작한다고 가정합니다. 그러나 WSL에서는 실패하는 Systemd를 사용하려고 시도합니다. 하지만 이제는 init.d 스크립트를 제공하므로 sudo service docker start원래 시도한 대로 실행할 수 있습니다.

    또는 nVidia는 다음을 제공합니다.설정 지침스크립트를 사용하는 것입니다 get.docker.com.

관련 정보