创建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