Docker容器中使用Nvidia GPU

在容器环境中使用物理机的Nvidia GPU,宿主机自身需要安装好显卡驱动,还要结合使用官方提供的Toolkit,创建新的容器运行时,并在启动容器时使用对应的运行时环境。以下是在Ubuntu 22.04系统中,docker容器使用物理机显卡的简单配置过程.

Bash
nvidia-smi -L
# 物理机上执行,检测显卡是否成功驱动

参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

  1. 配置APT仓库
Bash
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
  1. 安装软件包
Bash
sudo apt-get install -y nvidia-container-toolkit
  1. docker容器运行时配置
Bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
  1. 测试
Bash
docker run -it --rm --gpus=all ubuntu:22.04 nvidia-smi -L

附:docker配置文件(/etc/docker/daemon.json)参考

执行nvidia-ctk runtime configure –runtime=docker时会往配置中文件中写入相应的runtime配置

JSON
{
    "default-ulimits": {
        "memlock": {
            "Hard": -1,
            "Name": "memlock",
            "Soft": -1
        }
    },
    "exec-opts": [
        "native.cgroupdriver=cgroupfs"
    ],
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "bridge": "none",
    "iptables": false,
    "live-restore": true
}

评论

发表回复

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