docker:来自守护进程的错误响应:无法选择设备驱动程序“”具有功能:[[gpu]]

Posted

技术标签:

【中文标题】docker:来自守护进程的错误响应:无法选择设备驱动程序“”具有功能:[[gpu]]【英文标题】:docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]] 【发布时间】:2020-10-25 22:31:21 【问题描述】:

我看到了类似的胎面,但它们不同,因为我使用的是 WSL2 和 docker 以及 GPU 感知 docker。

我有 Windows 10 版本 2004(内部版本 20161.1000) 我已经安装了 WSL 2 并在我的 Windows 系统上运行了 Docker Desktop 2.3.0.3。 我也在 WSL 2 中安装了 Ubuntu 18.04 LTS。 我已经安装了 NVIDIA 驱动

Linux 版本是 4.19.121-microsoft-standard。 我的笔记本电脑 GPU QUADRO M2000M 的 NVIDIA 驱动程序版本是 455.41。 实际上,我遵循了https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2 中描述的所有步骤,直到我必须在 Ubuntu 终端中运行“sudo service docker stop”的步骤。

这会导致消息 docker: unrecognized service。

我必须在 WIndows 10 中重新启动 docker 桌面才能运行守护程序。

然后我在 Ubuntu 终端中测试: docker run hello-world ==> 这运行良好 此外,命令 docker run -it ubuntu bash ==> 在 Ubuntu 终端 os WSL 2 中运行文件。

但是当我跑步时: docker run -u $(id -u):$(id -g) -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter

然后我得到错误:docker:来自守护进程的错误响应:无法选择设备驱动程序“”,功能:[[gpu]]

这涉及到 microsoft、Ubuntu、NVIDIA。我已经搜索了支持网站,但找不到任何可以解决我问题的东西。

有人可以帮我吗?

【问题讨论】:

你找到答案了吗? 根据this,您必须有Windows Build version 20145 or higher的内部人员构建。 检查docs可能对你有帮助。 【参考方案1】:

here和here提到了这个奇怪的答案:

sudo service docker start
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd

这在 WSL (Ubuntu 20.04) 上对我有用,所以我将它添加到 ~/.bashrc 脚本中。注意,第一部分可能需要重新启动 docker!

【讨论】:

mkdir: cannot create directory ‘/sys/fs/cgroup/systemd’: File exists mount: /sys/fs/cgroup/systemd: cgroup already mounted on /sys/fs/cgroup/systemd. 对我不起作用。 Aneesh,我已经更新了帖子,因为我把命令放在了错误的顺序上。即使发生这种情况,它仍然可以工作。 谢谢!对我来说,这是一个不同的问题 - 缺少包 nvidia-container-toolkit

以上是关于docker:来自守护进程的错误响应:无法选择设备驱动程序“”具有功能:[[gpu]]的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“docker:来自守护进程的错误响应:无法链接到非运行容器:/db AS /odoo/db

来自守护进程的错误响应:无法停止容器 - 信号 init 进程导致“权限被拒绝”

Docker 抛出 FATA [0000] 来自守护进程的错误响应

来自守护进程的 Docker 错误响应:“冲突……容器已在使用”

docker:来自守护进程的错误响应:grpc:连接不可用

Docker:来自守护进程的错误响应:未能在网桥上创建端点 priceless_noether: