Docker 中 GPU 的使用

By | 2022年12月22日

Linux 装上 Docker 20 引擎,即使用了 --gpus all 也报错误:docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

其实是少装了 nvidia-container-runtime,我的是 N 卡,nvidia 源参考请点击这里

我的服务器是 Ubuntu 22,直接贴上对应的 nvidia 源:

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

接着开始安装 nvidia-container-runtime:

sudo apt-get install -y nvidia-container-runtime
systemctl stop docker
# 把运行时添加到 docker 中(不会自动退出命令,需要自己中断)
dockerd --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
# 测试(装好后,可通过添加 --gpus all 来支持 Docker 容器中使用 GPU了)
docker run --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

要在容器中使用 GPU,必须在 docker run 中添加 --gpus all 参数,如果您用的是 Docker Compose yaml 文件,也是支持的,但 Swarm 的 yaml 经测试不可以,具体可以看这篇文章:Docker Compose 笔记

需要注意:Docker 装在 VMware Workstation 虚机上是不支持 GPU 的,即使用了 --gpus all 参数。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注