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

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

Я пытался бежать:

$ 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, но я не уверен, как я должен поступить об этом.

9 ответов

Из репозитория github nvidia-docker :

      curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

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

sudo systemctl daemon-reload
sudo systemctl restart docker

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

Вот как я решаю указанную выше проблему для 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

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

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

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

nvidia-docker-unknown-runtime-specified-nvidia

Если у вас возникли проблемы с установкой nvidia-docker, попробуйте запустить этот сценарий оболочки . У меня это сработало, даже когда nvidia-docker вышел из строя.

в версии докера выше 19.03 или выше nvidia-docker2 больше не требуется (устарело) https://docs.nvidia.com/ai-enterprise/deployment-guide-vmware/0.1.0/docker.html , но их документ отсутствует часть конфигурации

      sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
sudo nvidia-ctk runtime configure --runtime=containerd
sudo systemctl restart containerd

Я считаю, что это решит оригинал

      docker: Error response from daemon: unknown or invalid runtime name: nvidia

Еслиnvidia-container-toolkitиdockerустановлены правильно

--runtime=nvida к --runtime --gpus all

Измените тег --runtime=nvidia на --runtine = gpus, надеюсь, он запустится.

Другие вопросы по тегам