
Imagen del kernel WSL2 Ubuntu 20.04.3 LTS: 5.10.60.1-microsoft-standard-WSL2
Estoy intentando instalar CUDA según las instrucciones aquí:https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2
Y recibo un docker: unrecognized service
mensaje al ejecutar el comando sudo service docker stop
. Seguí las instrucciones hasta el punto donde aparece este comando en el tutorial y los resultados de la ejecución sudo apt update && sudo apt install -y nvidia-docker2
parecen exitosos. También intenté verificar si el servicio Docker está disponible service --status-all
y no lo vi en los resultados.
Ayúdenme a descubrir cómo instalar CUDA correctamente. Estoy intentando configurar opencv con soporte de GPU para un proyecto en el que estoy trabajando en el procesamiento de imágenes.
Aquí están los resultados de los comandos mencionados que ejecuté:
service --status-all
Producción:
[ - ] 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
Dominio:
sudo apt update && sudo apt install -y nvidia-docker2
Producción:
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.
Respuesta1
Pude reproducir esto usando las instrucciones canónicas (aparentemente desactualizadas) que vinculó.
Puede ver el problema /var/log/apt/term.log
durante la instalación del docker.io
paquete:
invoke-rc.d: unknown initscript, /etc/init.d/docker not found.
Es el mismo script de inicio que el service
comando intenta ejecutar. Presumiblemente, se eliminó del docker.io
paquete en algún momento entre el momento en que se escribieron las instrucciones (y presumiblemente eran válidas) y ahora. En realidad, eso no es ninguna sorpresa. Ubuntu usa Systemd e docker.io
instala el archivo de unidad Systemd para el servicio Docker. Muchos paquetes solíantambiénproporcione el script de inicio heredado.
Sin embargo, WSL no es compatible con Systemd (al menos sin mucha piratería). Es mucho mejor tener una versión de Docker que proporcione un script de inicio para el service
comando. O eso, o uno que sepa empezar por sí solo bajo WSL.
Entonces, comencemos por desinstalar docker.io
y las dependencias que instaló:
sudo apt remove docker.io
sudo apt autoremove
Entonces tienes dos opciones. Cualquiera:
Instalar Docker Desktop para Windows. Docker Desktop tiene una estrecha integración con WSL y proporciona algunas características interesantes que no se obtienen con la versión de código abierto de Docker:
- Se puede compartir entre múltiples instancias WSL2.
- Puede ejecutarse desde PowerShell y CMD
- Proporciona un panel GUI de contenedores y volúmenes.
- Maneja actualizaciones automáticas (aunque algunos podrían no considerarlo necesariamente una ventaja)
- Es un método conveniente que maneja todas las demás cosas a continuación automáticamente.
Recientemente se ha producido un cambio de licencia que requiere una suscripción paga si la utiliza en una gran empresa. Como resultado, algunas personas parecen querer alejarse de él, pero yo propondría (puramente mi opinión) que si trabaja para una empresa grande, a menudo pagarán por este tipo de herramientas. Y eso, a su vez, ayuda a financiar las iniciativas de código abierto de Docker.
Sin embargo, si desea utilizar la edición de código abierto, puede hacerlo utilizando (principalmente)las instrucciones oficiales de Docker para Ubuntu.
Esas instrucciones suponen que el script de instalación iniciará el demonio Docker. Sin embargo, intenta utilizar Systemd, lo que falla en WSL. Pero ahora proporciona el script init.d, por lo que ahora puede ejecutarlo
sudo service docker start
como lo intentó originalmente.Alternativamente, nVidia proporcionainstrucciones de configuraciónque utilizan el
get.docker.com
guión.