Рейтинг:0

докер: нераспознанный сервис при установке CUDA

флаг by

WSL2 Ubuntu 20.04.3 ЛТС образ ядра: 5.10.60.1-microsoft-standard-WSL2

Я пытаюсь установить CUDA по инструкции здесь: https://ubuntu.com/blog/начало-с-cuda-на-ubuntu-на-wsl-2

И я получаю докер: неопознанный сервис сообщение при выполнении команды sudo служба докер стоп. Я следовал инструкциям до того места, где эта команда находится в учебнике, и результаты выполнения sudo apt update && sudo apt install -y nvidia-docker2 казаться успешным. Я также попытался проверить, доступна ли вообще служба докеров, используя служба --статус-все и не увидел его в результатах.

Пожалуйста, помогите мне понять, как правильно установить CUDA, я пытаюсь настроить opencv с поддержкой графического процессора для проекта, над которым я работаю в области обработки изображений.

Вот результаты выполнения упомянутых мной команд:

 служба --статус-все

Вывод:

 [ - ] одежда
 [ ? ] аппорт
 [ - ] атд
 [-] консоль-setup.sh
 [-] крон
 [ ? ] криптодиски
 [ ? ] cryptdisks-ранний
 [ - ] дбас
 [ ? ] hwclock.sh
 [ + ] иркбаланс
 [ - ] iscsid
 [-] клавиатура-setup.sh
 [ ? ] кмод
 [ - ] лвм2
 [-] lvm2-lvmpold
 [-] многопутевые инструменты
 [ + ] открытый iscsi
 [-] open-vm-инструменты
 [ ? ] Плимут
 [ ? ] Плимут-бревно
 [ - ] процедуры
 [-] rsync
 [-] rsyslog
 [ - ] очистка экрана
 [-] сш
 [ ? ] Ubuntu-фанат
 [ + ] удев
 [ - ] уфв
 [-] автоматические обновления
 [ - ] ууидд
 [-] x11-общий

Команда:

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

Вывод:

Попадание:1 http://archive.ubuntu.com/ubuntu focus InRelease
Попадание: 2 http://archive.ubuntu.com/ubuntu focus-updates InRelease
Попадание: 3 https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/amd64 InRelease
Попадание:4 http://archive.ubuntu.com/ubuntu focus-backports InRelease
Попадание: 5 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64 InRelease
Попадание:6 http://security.ubuntu.com/ubuntu focus-security InRelease
Попадание: 7 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64 InRelease
Попадание:8 https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64 InRelease
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Все пакеты обновлены.
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
nvidia-docker2 уже является самой новой версией (2.8.0-1).
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.
NotTheDr01ds avatar
флаг vn
Похоже, что-то пошло не так на этапе `sudo apt -y install docker.io`. Вы видите какие-либо ошибки, связанные с этим, с `less -r /var/log/apt/term.log`?
יחזקאל הירשהורן avatar
флаг by
@NotTheDr01ds, возможно, это: dpkg: предупреждение: при удалении linux-modules-5.4.0-81-generic каталог '/lib/modules/5.4.0-81-generic' не пуст, поэтому не удален ???
Рейтинг:1
флаг vn

I've been able to reproduce this using the (apparently outdated) Canonical instructions you linked.

You can see the problem in /var/log/apt/term.log during the installation of the docker.io package:

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

That's the same init script that the service command attempts to run. Presumably, it was removed from the docker.io package sometime between the time the instructions were written (and presumably valid) and now. That's no surprise, really. Ubuntu uses Systemd, and the docker.io installs the Systemd unit file for the Docker service. Many packages used to also provide the legacy init script.

However, WSL doesn't support Systemd (without a lot of hackery, at least). It's much better to have a Docker version that provides an init script for the service command. Either that, or one that knows how to start on its own under WSL.

So let's start by uninstalling docker.io and the dependencies it installed:

sudo apt remove docker.io
sudo apt autoremove

Then you have two options. Either:

  • Install Docker Desktop for Windows. Docker Desktop has tight integration with WSL, and provides some nice-to-have features that you don't get with the open-source Docker version:

    • It can be shared amongst multiple WSL2 instances
    • It can run from PowerShell and CMD
    • It provides a GUI dashboard of containers and volumes
    • It handles automatic upgrades (although some might not consider that necessarily an advantage)
    • It's a convenience method that handles all of the other stuff below automatically for you.

    There has been a license change recently that requires a paid subscription if you are using it in a large company. Some folks seem to be wanting to move away from it as a result, but I would propose (purely my opinion) that if you work for a large company, they will often pay for these sorts of tools. And that, in turn, helps fund Docker's open-source initiatives.

  • However, if you do want to use the open-source edition, you can do that using (mostly) the official Docker instructions for Ubuntu.

    Those instructions do assume that the installation script will start the Docker daemon. However, it attempts to use Systemd, which fails on WSL. But now it does provide the init.d script, so you can now run sudo service docker start as you originally tried.

    Alternatively, nVidia provides setup instructions which use the get.docker.com script.

יחזקאל הירשהורן avatar
флаг by
Спасибо! Если я правильно понимаю, ссылка на nVidia, которую вы дали, является единственной, которая проведет меня через весь процесс вплоть до использования tensorflow (на самом деле меня интересует opencv, но я думаю, что он использует tensorflow под капотом или что-то подобное)?
NotTheDr01ds avatar
флаг vn
@×××ק××××רש×××¨× Я еще не пробовал какие-либо вычислительные функции графического процессора, но мне бы этого хотелось делать в конце концов. Да, инструкции nVidia кажутся наиболее "полными", но если бы я этим занимался, то, наверное, пропустил бы их инструкции по установке Docker. Я бы попробовал это с Docker Desktop и продолжил их шаг по установке пакета `nvidia-docker2`. Тем не менее, я не могу гарантировать, что это сработает. Но вы всегда можете удалить Docker Desktop, а затем воспользоваться их инструкциями по установке Docker, если что-то пойдет не так.
יחזקאל הירשהורן avatar
флаг by
Спасибо. В конце концов я воспользовался их инструкциями, и это сработало. В будущем я, вероятно, попробую ваше предложение с Docker Desktop, потому что я думаю, что есть веская причина, по которой вы и другие люди говорите, что он работает лучше, и в конечном итоге он мне понадобится.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.