宿主机安装 NVIDIA Container Toolkit,使Docker 可以正常调用宿主(虚拟机)的物理显卡

为了方便管理不同的AI工具,以便后续升级和变更,我决定还是让工具以Docker形式单独跑起来,而宿主机使用核心稳定驱动。

如果你的宿主机本身是虚拟机,可以参考PVE的直通V100的配置:

0.环境说明

宿主机(虚拟机)配置如下:

CPU20Cores
RAM80G
硬盘256G
操作系统DEBIAN 12
显示卡NVIDIA V100 32G
驱动版本570.195.03/CUDA12.8

1.工具安装

①安装nvidia-container-toolkit

root 用户操作:

安装 curlgnupg

apt install curl gnupg -y

配置官方 APT 仓储源:

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' | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

更新源并安装工具包:

apt update
apt install -y nvidia-container-toolkit

②安装docker 和docker compose

添加官方源:

tee /etc/apt/sources.list <<EOF
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

刷新缓存

apt-get clean
apt-get update

一键安装Docker 和 docker compose:

apt-get update && curl -fsSL https://get.docker.com | sh

配置并重启 Docker 守护进程(让 Docker 默认支持 NVIDIA Runtime):

nvidia-container-toolkit runtime configure --runtime=docker
systemctl restart docker

③验证docker能否正常调用宿主机的nvidia显卡(V100)

黄金测试 ⚡:验证 Docker 容器能否看到显卡 运行一个临时的 CUDA 镜像,如果能正确打印出 V100 的 nvidia-smi 界面,说明桥梁完全打通:

docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi

发表回复

Your email address will not be published.