当前位置:首页 » 《我的小黑屋》 » 正文

(解决方案)docker could not select device driver |Docker 无法成功分配或访问GPU资源

5 人参与  2024年05月04日 16:21  分类 : 《我的小黑屋》  评论

点击全文阅读


当运行 docker run -it --name xxx --gpus all … 时(主要是带有 --gpu all)出现以下报错,大概率是表明Docker无法成功分配或访问GPU资源。

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].ERRO[0000] error waiting for container: context canceled 

这通常意味着Docker环境中缺少了NVIDIA GPU支持的相关设置或配置。要在Docker容器中使用GPU,你需要确保安装和配置了NVIDIA Docker支持,即NVIDIA Container Toolkit。这个工具链允许 Docker 容器直接访问宿主机的NVIDIA GPU。

1. 安装和确认 NVIDIA 驱动

确保你的宿主机安装了支持你的NVIDIA GPU的驱动。可以通过运行 nvidia-smi 来检查驱动是否已安装和GPU是否被识别。

2. 安装NVIDIA Container Toolkit

NVIDIA Container Toolkit(包括nvidia-docker)是必需的,以便Docker可以管理和使用GPU。可以按照NVIDIA官方文档的指示进行安装。(https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)

以下是一个基本的安装步骤概览(以Ubuntu为例):

# 设置稳定版仓库和GPG密钥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# 安装nvidia-docker2和重启Docker服务sudo apt-get updatesudo apt-get install -y nvidia-docker2sudo systemctl restart docker

上述 bash 的详细解释:

第一句:设置环境变量distribution,用于指定你的Linux发行版和版本号,以便下载与你的系统兼容的nvidia-docker版本,其中
distribution:这是一个环境变量,用于存储你的系统发行版信息。.(或source)和/etc/os-release:读取系统信息文件,提取并设置特定的系统发行版和版本号。 echo $ID$VERSION_ID:打印出系统ID和版本号,如ubuntu18.04,作为后续步骤中使用的版本标识。
第二句:下载并添加NVIDIA Docker的GPG密钥。

curl -s -L:curl是一个工具,用于从网络传输数据。-s使其在非错误时运行静默模式,-L允许curl重定向。
https://nvidia.github.io/nvidia-docker/gpgkey:这是NVIDIA Docker GPG密钥的URL,用于验证下载包的完整性。
sudo apt-key add -:将下载的GPG密钥添加到APT的密钥库中,以便APT能够验证NVIDIA Docker包的签名。

第三句:将NVIDIA Docker的源添加到系统的APT源列表。
https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list:这是根据系统发行版动态确定的NVIDIA Docker APT源的URL。 sudo tee /etc/apt/sources.list.d/nvidia-docker.list:tee命令用于读取标准输入,并写入标准输出和文件。这里它被用来将APT源写入nvidia-docker.list文件。

安装nvidia-docker2:
sudo apt-get update:更新APT包索引。
sudo apt-get install -y nvidia-docker2:安装nvidia-docker2包。-y选项意味着自动回答yes于所有提示,不需要交互式确认。

重启Docker服务:
sudo systemctl restart docker:使用systemctl命令重启Docker服务,以确保新安装的nvidia-docker2配置生效。
完成这些步骤后,你的系统应该具备运行Docker容器并让它们使用NVIDIA GPU的能力。

3. 最后用–gpus选项运行Docker容器进行测试

安装完NVIDIA Container Toolkit后,你应该能够使用–gpus all选项运行Docker容器,以使容器可以访问宿主机的GPU。如果安装正确,之前出现的错误应该不会再出现。

请注意,安装和配置过程可能会根据你的具体系统环境(如Linux发行版)和你的NVIDIA GPU型号而有所不同。建议遵循最新的官方NVIDIA文档来完成安装和配置。


点击全文阅读


本文链接:http://zhangshiyu.com/post/103640.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1