docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

这个错误通常发生在尝试在 Docker 容器中使用 GPU 加速时,而 Docker 未能找到或配置 GPU 驱动程序。要解决这个问题,请按照以下步骤操作:

1. 安装 NVIDIA Docker 支持

如果你希望使用 GPU 运行 Docker 容器,需要安装 nvidia-docker2 以便 Docker 能够正确地识别和使用 GPU。

步骤:

  • 首先,确保你的系统上已经安装了 NVIDIA 驱动程序。可以使用命令 nvidia-smi 检查驱动是否正确安装。

重启 Docker 服务:

sudo systemctl restart docker

安装 nvidia-docker2

sudo apt-get update
sudo apt-get install -y nvidia-docker2

添加 NVIDIA Docker 的包源:

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

2. 运行 GPU 容器

在安装 nvidia-docker2 后,你可以通过以下方式使用 GPU:

docker run --gpus all nvidia/cuda:11.0-base nvidia-smi

这个命令会使用 Docker 的 nvidia/cuda 镜像,并在容器内运行 nvidia-smi 来显示 GPU 状态。如果一切正常,你应该能够看到 GPU 的信息。

3. 检查 Docker 版本

确保你使用的 Docker 版本支持 GPU 访问。Docker 19.03 及以上版本内置了 GPU 支持 (--gpus 标志),而之前的版本则需要使用 --runtime=nvidia 来指定 GPU。

4. 检查 NVIDIA 驱动程序和 CUDA 是否兼容

如果 Docker 仍然无法检测到 GPU,请确认你的 NVIDIA 驱动程序和 CUDA 版本是兼容的。如果需要,可以更新驱动程序或重新安装。

通过这些步骤,你应该能够在 Docker 容器中使用 GPU。