【跳坑日记-成功解决】docker使用GPU报错:could not select device driver ““ with capabilities: [[gpu]]

缘起(报错信息):

在搭建RAG知识库的过程中,用到Ollama框架,在使用其推荐框架open-webui时,想利用本机自带GPU进行加速,于是执行docker命令docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
在执行过程中出现如下报错:

Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

以上是报错发生的过程。

运行环境:

介绍下本机运行环境:

项目参数
系统Ubuntu 20.04.6 LTS
docker版本27.2.1
显卡型号NVIDIA GeForce RTX 3060

解决过程

先说结论:问题已经解决,open-webui可以在GPU上稳定运行。
下面总结一下解决过程:
首先在CSDN上找到了报错解决方案——参考3.
提到安装英伟达显卡容器,但是直接复制博客里面的代码会报错。因此找到英伟达官方网站进行安装——参考4.
在此贴上省流步骤:
1、配置生产存储库:

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

2、(可选)将存储库配置为使用实验性软件包:

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

3、从存储库更新软件包列表:

sudo apt-get update

4、安装 NVIDIA Container Toolkit 软件包:

sudo apt-get install -y nvidia-container-toolkit

此时,重新执行docker命令,将不会报错。

以上就是该问题的完全解决过程,希望对你有所帮助。也欢迎点赞加收藏,感谢。

参考

  1. Ollama框架
  2. open-webui框架
  3. 解决关于Docker运行容器使用GPU资源时的异常:could not select device driver ““ with capabilities: [[gpu]]
  4. Installing the NVIDIA Container Toolkit
### Docker 创建容器时 GPU 设备驱动选择失败解决方案 当遇到 `Error response from daemon: could not select device driver " with capabilities: [[gpu]]` 错误时,这通常意味着 Docker 容器尝试访问 GPU 资源但未能成功配置所需的设备驱动程序。为了使 Docker 支持 GPU 加速功能,需要确保 NVIDIA 的相关工具包已正确安装并配置。 #### 安装 NVIDIA Container Toolkit NVIDIA 提供了一个名为 nvidia-container-toolkit 的软件包,用于让 Docker 容器能够利用主机上的 NVIDIA GPU 进行计算工作[^1]。以下是具体操作: ```bash # 更新 apt 包索引 sudo apt-get update && sudo apt-get install -y ca-certificates curl gnupg lsb-release # 添加官方 GPG 密钥 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg # 设置仓库地址 distribution=$(. /etc/os-release;echo $VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.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 # 安装 toolkit sudo apt-get update && sudo apt-get install -y nvidia-docker2 # 测试安装是否成功 sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi ``` 完成上述步骤之后,应该可以正常启动带有 GPU 访问权限的 Docker 容器,并且不会再收到关于无法选择设备驱动的消息[^2]。 如果仍然存在问题,则可能是因为显卡驱动版本不匹配或其他环境因素引起的,在这种情况下建议检查系统日志文件以及确认所使用的 CUDA 和 cuDNN 版本兼容性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑符石

感谢小主对原创的大力支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值