bash
docker run -itd --gpus all --name gpu-test uhub.service.ucloud.cn/openbayesruntimes/deepspeed:0.12.4-py310-cu121.102 bash
be4ce6487b84ca2ba6801b16f0cddaba216c174d64e57446c4f1db9574fefaf5
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]].
这是 Docker 在执行 --gpus all
参数时,找不到 GPU 设备驱动导致的,常见原因和解决方案如下:
可能原因及解决方案
1. Docker 未安装或未正确配置 NVIDIA Container Toolkit
- Docker 本身不支持直接管理 GPU,需要 NVIDIA Container Toolkit 来桥接 Docker 和 NVIDIA 驱动。
检查是否安装 NVIDIA Container Toolkit:
bash
dpkg -l | grep nvidia-container-toolkit
如果没有安装,参考官方步骤安装:
bash
# 设置仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_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
安装完成后,重启 Docker 服务:
bash
sudo systemctl restart docker
2. NVIDIA 驱动未正确安装或版本不兼容
确认主机上 NVIDIA 驱动安装正确:
bash
nvidia-smi
如果没有显示 GPU 信息或命令不存在,需要先安装 NVIDIA 驱动。
3. Docker 版本过低或不支持 --gpus
选项
--gpus
选项要求 Docker 19.03 及以上版本。
确认版本:
bash
docker version
4. 测试 NVIDIA Container Toolkit 是否正常
可以运行官方测试镜像:
bash
docker run --rm --gpus all nvidia/cuda:12.1.0-base nvidia-smi
如果运行失败,说明 NVIDIA Container Toolkit 没配置好。
5. 配置文件问题(可选)
确认 /etc/docker/daemon.json
中没有错误配置,例如:
json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
总结步骤建议:
- 确保 NVIDIA 驱动正常安装并且
nvidia-smi
能正确显示。 - 安装并配置 NVIDIA Container Toolkit。
- 重启 Docker 服务。
- 确认 Docker 版本支持
--gpus
。 - 运行测试命令验证。
如果你需要,我可以帮你写一份详细的安装和检查命令清单,你觉得呢?