目录
2.3 配置 containerd(适用于 Kubernetes)
3.3 使用 containerd 或 CRI-O 运行示例工作负载
运行 apt update 时出现为选项 Signed-By 设置的值冲突错误
在 SELinux 下运行 nvidia-docker 包装器时出现权限被拒绝错误
一、安装
1.1 先决条件
为您的 Linux 发行版安装 NVIDIA GPU 驱动程序。NVIDIA 建议使用您发行版的包管理器来安装驱动程序。
有关通过包管理器安装驱动程序的信息,请参阅 NVIDIA 驱动程序安装快速入门指南。
另外,您也可以通过下载 .run 安装程序来安装驱动程序。请参阅 NVIDIA 官方驱动程序页面。
1.2 使用 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' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
可选地,配置仓库以使用实验性包:
#sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
从仓库更新包列表:
#sudo apt-get update
安装 NVIDIA 容器工具包:
sudo apt-get install -y nvidia-container-toolkit
1.3 使用 Yum 或 Dnf 安装
配置生产仓库:
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
安装 NVIDIA 容器工具包:
sudo yum install -y nvidia-container-toolkit
1.4 使用 Zypper 安装
配置生产仓库:
sudo zypper ar https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
可选地,配置仓库以使用实验性包:
sudo zypper modifyrepo --enable nvidia-container-toolkit-experimental
安装 NVIDIA 容器工具包包:
sudo zypper --gpg-auto-import-keys install -y nvidia-container-toolkit
二、配置
2.1 先决条件
您已安装了支持的容器引擎(Docker、Containerd、CRI-O、Podman)。
您已安装 NVIDIA 容器工具包。
2.2 配置 Docker
1、通过使用 nvidia-ctk 命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
nvidia-ctk 命令将修改主机上的 /etc/docker/daemon.json
文件。该文件已更新,以便 Docker 可以使用 NVIDIA 容器运行时。
2、重启 Docker 守护进程:
sudo systemctl restart docker
2.2.1 无根模式
要为运行在无根模式下的 Docker 配置容器运行时,请按照以下步骤进行:
1、通过使用 nvidia-ctk 命令配置容器运行时:
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
2、重启无根 Docker 守护进程:
systemctl --user restart docker
3、使用 sudo nvidia-ctk
命令配置 /etc/nvidia-container-runtime/config.toml
:
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
2.3 配置 containerd(适用于 Kubernetes)
1、通过使用 nvidia-ctk 命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=containerd
nvidia-ctk 命令将修改主机上的 /etc/containerd/config.toml
文件。该文件已更新,以便 containerd 可以使用 NVIDIA 容器运行时。
2、重启 containerd:
sudo systemctl restart containerd
2.4 配置 containerd(用于 nerdctl)
无需额外配置。您可以直接运行 nerdctl run --gpus=all
,无论是以 root 身份还是非 root 身份。您不需要为 Kubernetes 运行上述提到的 nvidia-ctk 命令。
另请参阅 nerdctl 文档。
2.5 配置 CRI-O
通过使用 nvidia-ctk 命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=crio
nvidia-ctk 命令将修改主机上的 /etc/crio/crio.conf
文件。该文件已更新,以便 CRI-O 可以使用 NVIDIA 容器运行时。
2、重启 CRI-O 守护进程:
sudo systemctl restart crio