nvidia could not select device driver ““ with capabilities: [[gpu]]

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": []
    }
  }
}

总结步骤建议:

  1. 确保 NVIDIA 驱动正常安装并且 nvidia-smi 能正确显示。
  2. 安装并配置 NVIDIA Container Toolkit。
  3. 重启 Docker 服务。
  4. 确认 Docker 版本支持 --gpus
  5. 运行测试命令验证。

如果你需要,我可以帮你写一份详细的安装和检查命令清单,你觉得呢?

相关推荐
格砸19 分钟前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云33 分钟前
可观测性 4.0:教系统如何思考
人工智能
sunny8651 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔1 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung1 小时前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_1 小时前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能
南山安2 小时前
手写 Cursor 核心原理:从 Node.js 进程到智能 Agent
人工智能·agent·设计
掘金安东尼2 小时前
如何为 AI 编码代理配置 Next.js 项目
人工智能
aircrushin2 小时前
轻量化大模型架构演进
人工智能·架构
文心快码BaiduComate3 小时前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构