英伟达文档
NVIDIA Container Toolkit 是一套工具和库,简化在容器环境中使用 NVIDIA GPU 的过程。它允许用户在 Docker 或其他容器平台上运行 GPU 加速的应用程序,而无需手动配置复杂的驱动和环境。以下是其主要特点和功能:
安装
在安装NVIDIA Container Toolkit之前需要先安装NVIDIA GPU 驱动程序
1 2 3 4 5 6
| sudo curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
sudo yum install -y nvidia-container-toolkit
|
安装时可能会报OpenSSL错误,可以尝试在NVIDIA github下载安装包进行安装
配置
确保安装了容器引擎(Docker、Containerd、CRI-O、Podman),以及nvidia-container-toolkit
docker配置
1 2 3 4
| sudo nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
|
当docker为无根模式(一种允许非特权用户(即普通用户,无需 root 权限)运行 Docker 容器的方式),使用以下配置方式
1 2 3 4 5 6
| nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
systemctl --user restart docker
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
|
containerd(适用于 Kubernetes)
1 2 3 4 5 6
|
sudo nvidia-ctk /etc/containerd/config.toml sudo nvidia-ctk runtime configure --runtime=containerd
sudo systemctl restart containerd
|
配置 containerd(用于 nerdctl)无需额外配置,在传统的 Docker 环境中,需要配置 Docker 使用 nvidia-container-runtime。但对于 containerd 和 nerdctl,无需额外配置,因为 nerdctl 可以直接调用 nvidia-container-toolkit 来启用 GPU 支持。
运行示例
1 2 3 4 5 6
|
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
sudo docker run --rm --runtime=nvidia --gpus '"device=0,1"' ubuntu nvidia-smi sudo docker run --rm --runtime=nvidia --gpus 2 ubuntu nvidia-smi
|
可以输出nvidia-smi
结果证明安装完成