docker创建容器报错Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

创建docker容器报错:
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]Error: failed to start containers:ubuntu20?

这表明 Docker 容器无法识别或访问 GPU 设备有关

1、首先确保宿主机的nvidia-smi 显示正确,即正确安装了 NVIDIA Docker Toolkit

2、这一步很重要,执行下面命令如图会显示OK成功:

`distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \`

`&& curl -s -L`

[`https://nvidia.github.io/nvidia-docker/gpgkey`](https://nvidia.github.io/nvidia-docker/gpgkey)

`| sudo apt-key add - \`

`&& curl -s -L`

[`https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list`](https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list)

`| sudo tee /etc/apt/sources.list.d/nvidia-docker.list`

在这里插入图片描述
这个源下载时间可能会比较久,稍微等待一会,确保网络通信正常

3、执行命令

sudo apt-get update
sudo apt-get install -y nvidia-docker2(可忽略)

4、重启docker:sudo systemctl restart docker
注意检查docker --version版本要在 19.03 及以上

5、最后执行命令sudo apt-get install -y nvidia-container-toolkit 安装了nvidia-container-toolkit`成功就能解决问题

检查是否成功输入which nvidia-container-runtime 如果显示/usr/bin/nvidia-container-runtime则没问题

否则安装会报错 E: Unable to locate package nvidia-container-toolkit(上面好了则忽略)
重复一次
distribution=$(. /etc/os-release;echo I D ID IDVERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
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-container-toolkit

在这里插入图片描述
不然就离线去 https://github.com/NVIDIA/nvidia-docker 找到 nvidia-container-toolkit 对应的 .deb 文件下载后

sudo dpkg -i nvidia-container-toolkit_<version>_amd64.deb
sudo systemctl restart docker

补充别的可能报错:

1、Docker Daemon 使用 NVIDIA Runtime,添加docker源。编辑 Docker 的配置文件 /etc/docker/daemon.json,
放入

{
    
    
  "runtimes": {
    
    
    "nvidia": {
    
    
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  },
  "default-runtime": "nvidia"
}

{
“registry-mirrors”: [“https://”]
}
提供可参考中国镜像加速器也是放到 /etc/docker/daemon.json,然后重启docker

2、如果报错docker: Error response from daemon: no command specified.
在docker run最后加一个bash即可

  • 比如一开始是
    sudo docker run -d --name LZ_ubuntu20 --gpus all -p 10026:22 -p 14004:4000 -v /data/LZ:/home ubuntu20_base:latest
    改为
    sudo docker run -d --name LZ_ubuntu20 --gpus all -p 10026:22 -p 14004:4000 -v /data/LZ:/home ubuntu20_base:latest bash

猜你喜欢

转载自blog.csdn.net/ph12345687/article/details/141873535
今日推荐