在GPU云服务器上安装Docker环境后,如果未安装NVIDIA Container Toolkit,通过docker run --gpus all [镜像名称]
启动容器镜像时,可能会出现docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
报错,本文为您介绍这种情况的解决方案。
问题描述
在GPU云服务器上安装Docker环境后,通过执行 docker run --gpus all [镜像名称]
命令来启动该Docker容器时,出现如下报错:
问题原因
NVIDIA Container Toolkit是Docker能够访问GPU资源的工具。在GPU云服务器上安装Docker后,如果NVIDIA Container Toolkit未安装,可能会导致Docker无法选择GPU设备,即出现上述报错。
解决方案
执行以下命令,确认GPU实例已安装NVIDIA GPU驱动。
GPU实例本身并未配备相关驱动,需要单独安装相应驱动。如果NVIDIA GPU驱动未安装,Docker也无法访问GPU设备。
nvidia-smi
如果显示驱动版本(如下图所示),则表示已成功安装NVIDIA GPU驱动,否则,请继续安装Tesla驱动或安装GRID驱动。
执行以下命令,确认GPU实例已安装Docker。
sudo docker -v
如果显示Docker版本(如下图所示),表示Docker已安装,否则,请继续安装Docker。
执行以下命令,安装NVIDIA Container Toolkit。
本步骤以CentOS、Alibaba Cloud Linux和Ubuntu为例,其他操作系统的安装命令,请参见Installing the NVIDIA Container Toolkit。
CentOS/Alibaba Cloud Linux操作系统
# 配置源 curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \ sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo # 安装 sudo yum install -y nvidia-container-toolkit # 重启Docker服务 sudo systemctl restart docker
Ubuntu操作系统
# 配置源 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update # 安装 sudo apt-get install -y nvidia-container-toolkit # 重启Docker服务 sudo systemctl restart docker
执行以下命令,查看NVIDIA Container Toolkit已成功安装。
CentOS\Alibaba Cloud Linux操作系统
sudo rpm -qa | grep nvidia-container-toolkit
Ubuntu操作系统
sudo dpkg -l | grep nvidia-container-toolkit
如果显示NVIDIA Container Toolkit版本(如下图所示),表示NVIDIA Container Toolkit已正确安装。
执行
docker run --gpus all [镜像名称]
验证问题已解决。
- 本页导读 (1)
- 问题描述
- 问题原因
- 解决方案