英伟达- Docker :未知的运行时指定的nvidia

olhwl3o2  于 2023-03-17  发布在  Docker
关注(0)|答案(7)|浏览(337)

我尝试在安装docker-ce后安装nvidia-docker,我遵循了以下步骤: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个GPU(泰坦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,但我不知道该如何着手。

lf3rwulv

lf3rwulv1#

来自英伟达-Docker Github回购:

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
zbq4xfa0

zbq4xfa02#

实际上,您可以尝试通过以下命令重新启动Docker守护进程。

sudo systemctl daemon-reload
sudo systemctl restart docker

或者你可以尝试重新启动你的系统。以使nvidia-docker工作

soat7uwm

soat7uwm3#

这就是我如何解决CentOS 7的上述问题;希望它能帮助任何有类似问题的人。

  • 添加必要的repos以获取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
  • 更新Docker守护程序:
sudo vim /etc/docker/daemon.json

路径为nvidia-container-runtime:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}
  • 最后,你需要让docker更新路径:
sudo pkill -SIGHUP dockerd
oaxa6hgo

oaxa6hgo4#

看起来你可能需要清除Docker并重新安装它,就像在帖子中一样: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
lx0bsm1f

lx0bsm1f5#

常见问题解答:
为什么我会得到错误Unknown runtime specified nvidia?请确保运行时已注册到dockerd。您还需要重新加载Docker守护进程的配置。

ipakzgxi

ipakzgxi6#

如果你在安装nvidia-docker时遇到问题,那就试试运行这个shell script吧,它甚至在nvidia-docker崩溃时也能正常工作。

wr98u20j

wr98u20j7#

--runtime=nvidia 标记更改为 *--runtine= gpusall *,希望它能够运行

相关问题