nvidia-docker: указана неизвестная среда выполнения nvidia

Я попытался установить nvidia-docker после установки docker-ce. Я следил за этим: https://github.com/NVIDIA/nvidia-docker для установки nvidia- докер. Вроде установил правильно.

Я пробовал бежать:

$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.

Хотя это работает (без --runtime = nvidia):

$ docker container run -ti ubuntu bash

Дополнительная информация о моей системе: это сервер ubuntu 16.04 с 8 графическими процессорами (Titan Xp) и драйвером nvidia версии 387.26. Я могу запустить nvidia-smi -l 1 в хост-системе, и он работает должным образом.

$ dpkg -l | grep -E '(nvidia|docker)'
ii  docker-ce                              18.06.1~ce~3-0~ubuntu                        amd64        Docker: the open-source application container engine
ii  libnvidia-container-tools              1.0.0-1                                      amd64        NVIDIA container runtime library (command-line tools)
ii  libnvidia-container1:amd64             1.0.0-1                                      amd64        NVIDIA container runtime library
ii  nvidia-container-runtime               2.0.0+docker18.06.1-1                        amd64        NVIDIA container runtime
ii  nvidia-container-runtime-hook          1.4.0-1                                      amd64        NVIDIA container runtime hook
ii  nvidia-docker2                         2.0.3+docker18.06.1-1                        all          nvidia-docker CLI wrapper



$ cat /etc/docker/daemon.json 
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

Я наткнулся на: https://github.com/NVIDIA/nvidia-docker/issues/501, но я не знаю, как мне это сделать.


person mkuse    schedule 18.10.2018    source источник
comment
--runtime nvidia предназначен только для nvidia-docker2. --gpus [all|num|dev] следует использовать вместо Docker 19.03. github.com/NVIDIA/nvidia-docker#usage   -  person BugKiller    schedule 22.09.2019
comment
nvidia-docker устарело.   -  person questionto42    schedule 27.03.2021


Ответы (4)


Кажется, вам может потребоваться очистить докер и переустановить его, как в сообщении: проблемы с github

sudo apt remove docker-ce
sudo apt autoremove
sudo apt-get install docker-ce=5:18.09.0~3-0~ubuntu-bionic
sudo apt install nvidia-docker2
person Andrey Volodin    schedule 07.02.2019
comment
Ссылки хороши, но вы также должны скопировать и вставить соответствующее содержимое оттуда в свое сообщение, чтобы даже если в будущем ссылка будет недоступна, ваш ответ все равно будет иметь смысл. - person Vaibhav Vishal; 07.02.2019
comment
Я считаю, что sudo apt install nvidia-docker2 устарел с 16 января 2020 г. На этой странице от nvidia-docker, он предлагает sudo apt-get install -y nvidia-container-toolkit - person Nathan; 17.01.2020
comment
E: Версия '5: 18.09.0 ~ 3-0 ~ ubuntu-bionic' для 'docker-ce' не найдена - person Mona Jalal; 07.01.2021
comment
@Nathan E: невозможно найти пакет nvidia-container-toolkit - person Mona Jalal; 07.01.2021
comment
@MonaJalal Извините, я как-то только что это увидел. Получилось ли у вас работать? Наверное, давно об этом не задумывался. - person Nathan; 05.03.2021

Вот как я решаю указанную выше проблему для CentOS 7; надеюсь, это поможет любому, у кого есть подобные проблемы.

  • Добавьте необходимые репозитории, чтобы получить nvidia-container-runtime:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
  • (Необязательно) В моем случае я отключил экспериментальные репозитории:
sudo yum-config-manager --disable libnvidia-container-experimental
sudo yum-config-manager --disable nvidia-container-runtime-experimental
  • Установите пакет nvidia-container-runtime:
sudo yum install nvidia-container-runtime
  • Обновить демон докеров:
sudo vim /etc/docker/daemon.json

с путем к nvidia-container-runtime:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
  • Наконец, вам нужно заставить докер обновлять путь:
sudo pkill -SIGHUP dockerd
person Minh Nguyen    schedule 27.08.2020

На самом деле, вы можете попробовать перезапустить демон Docker, выполнив следующую команду.

sudo systemctl daemon-reload
sudo systemctl restart docker

Или вы можете попробовать перезагрузить вашу систему. чтобы заставить работать nvidia-docker

person chun-fu chen    schedule 23.11.2018

Следуйте инструкциям в FAQ, и моя проблема была решена.

nvidia-docker-unknown-runtime-specified-nvidia

person Tung Tran    schedule 25.09.2019
comment
Публикации URL-адресов недостаточно. Они могут стать недействительными. - person mate00; 25.09.2019