docker报错
docker run --gpus all hello-world nvidia-smi
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
这个错误表明 NVIDIA Container Runtime 没有正确配置。让我们逐步解决:
首先检查 NVIDIA 驱动是否正常:
# 检查 NVIDIA 驱动
nvidia-smi
# 检查 NVIDIA Container Runtime 是否安装
which nvidia-container-runtime
重新配置 NVIDIA Container Runtime:
# 配置 Docker 默认运行时
sudo nvidia-ctk runtime configure --runtime=docker
# 或者手动编辑 Docker daemon 配置
sudo nano /etc/docker/daemon.json
# 确保包含以下配置
{
"data-root": "/data/app/docker",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
重启 Docker 服务:
sudo systemctl restart docker
使用正确的测试镜像:
# hello-world 镜像不包含 nvidia-smi,应该使用 NVIDIA 的基础镜像
docker run --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
如果还有问题,检查完整安装:
# 重新安装 NVIDIA Container Toolkit
sudo apt-get install -y nvidia-container-toolkit nvidia-container-runtime
# 验证安装
dpkg -l | grep -i nvidia
# 检查 Docker 信息
docker info | grep -i runtime
如果以上步骤执行后仍有问题,请运行以下命令查看详细错误信息:
# 检查 Docker 日志
sudo journalctl -fu docker
# 检查 NVIDIA Container Runtime 版本
nvidia-container-runtime --version
# 检查 Docker 运行时配置
sudo cat /etc/docker/daemon.json