docker: serviço não reconhecido ao instalar CUDA

docker: serviço não reconhecido ao instalar CUDA

Imagem do kernel WSL2 Ubuntu 20.04.3 LTS: 5.10.60.1-microsoft-standard-WSL2

Estou tentando instalar o CUDA de acordo com as instruções aqui:https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2

E estou recebendo uma docker: unrecognized servicemensagem ao executar o comando sudo service docker stop. Eu segui as instruções até o ponto em que este comando está no tutorial e os resultados da execução sudo apt update && sudo apt install -y nvidia-docker2parecem bem-sucedidos. Também tentei verificar se o serviço docker está disponível usando service --status-alle não o vi nos resultados.

Por favor, ajude-me a descobrir como instalar corretamente o CUDA. Estou tentando configurar o opencv com suporte de GPU para um projeto em que estou trabalhando no processamento de imagens.

Aqui estão os resultados dos comandos mencionados que executei:

 service --status-all

Saída:

 [ - ]  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

Comando:

sudo apt update && sudo apt install -y nvidia-docker2

Saída:

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.

Responder1

Consegui reproduzir isso usando as instruções canônicas (aparentemente desatualizadas) que você vinculou.

Você pode ver o problema /var/log/apt/term.logdurante a instalação do docker.iopacote:

invoke-rc.d: unknown initscript, /etc/init.d/docker not found.

Esse é o mesmo script de inicialização que o servicecomando tenta executar. Presumivelmente, ele foi removido da docker.ioembalagem em algum momento entre o momento em que as instruções foram escritas (e provavelmente válidas) e agora. Isso não é nenhuma surpresa, realmente. Ubuntu usa Systemd e docker.ioinstala o arquivo de unidade Systemd para o serviço Docker. Muitos pacotes costumavamtambémforneça o script de inicialização legado.

No entanto, o WSL não oferece suporte ao Systemd (sem muitos hackers, pelo menos). É muito melhor ter uma versão do Docker que forneça um script de inicialização para o servicecomando. Ou isso, ou aquele que sabe como começar sozinho na WSL.

Então, vamos começar desinstalando docker.ioe instalando as dependências:

sudo apt remove docker.io
sudo apt autoremove

Então você tem duas opções. Qualquer:

  • Instale o Docker Desktop para Windows. Docker Desktop tem forte integração com WSL e fornece alguns recursos interessantes que você não obtém com a versão de código aberto do Docker:

    • Pode ser compartilhado entre várias instâncias WSL2
    • Ele pode ser executado no PowerShell e no CMD
    • Ele fornece um painel GUI de contêineres e volumes
    • Ele lida com atualizações automáticas (embora alguns possam não considerar isso necessariamente uma vantagem)
    • É um método conveniente que lida com todas as outras coisas abaixo automaticamente para você.

    Houve recentemente uma mudança de licença que requer uma assinatura paga se você estiver usando em uma grande empresa. Como resultado, algumas pessoas parecem querer se afastar disso, mas eu proporia (puramente minha opinião) que, se você trabalha para uma grande empresa, muitas vezes elas pagarão por esse tipo de ferramenta. E isso, por sua vez, ajuda a financiar as iniciativas de código aberto do Docker.

  • No entanto, se quiser usar a edição de código aberto, você pode fazer isso usando (principalmente)as instruções oficiais do Docker para Ubuntu.

    Essas instruções pressupõem que o script de instalação iniciará o daemon Docker. No entanto, ele tenta usar o Systemd, que falha no WSL. Mas agora ele fornece o script init.d, então você pode executar sudo service docker startcomo tentou originalmente.

    Alternativamente, a nVidia forneceinstruções de configuraçãoque usam o get.docker.comscript.

informação relacionada