首页
/ NVIDIA 容器工具包安装与使用指南

NVIDIA 容器工具包安装与使用指南

2026-02-06 05:06:28作者:伍希望

NVIDIA Container Toolkit 是一个用于构建和运行利用 NVIDIA GPU 加速的容器的工具集。它提供了一套完整的容器运行时库和实用程序,可自动配置容器以利用 NVIDIA GPU。

项目概述

NVIDIA Container Toolkit 包含以下主要组件:

  • nvidia-container-runtime:容器运行时库,用于处理 GPU 初始化和生命周期管理
  • nvidia-container-cli:命令行工具,提供查看和操作 NVIDIA 容器的功能
  • nvidia-ctk:容器工具包 CLI,提供各种实用功能
  • nvidia-cdi-hook:CDI(Container Device Interface)钩子实现

安装前提

在安装 NVIDIA Container Toolkit 之前,请确保满足以下要求:

  1. 已安装 NVIDIA 驱动程序:必须为您的 Linux 发行版安装兼容的 NVIDIA 驱动程序
  2. 不需要在宿主机上安装 CUDA Toolkit:NVIDIA 驱动程序是必需的,但 CUDA Toolkit 不需要在宿主机上安装
  3. 支持的容器运行时:Docker、containerd 或 CRI-O

安装步骤

方法一:从官方仓库安装

首先添加 NVIDIA 容器工具包仓库:

# 设置发行版变量
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

# 添加 NVIDIA 包仓库
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# 更新包列表并安装
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

方法二:从源码构建

如果需要从源码构建,可以克隆仓库并编译:

git clone https://gitcode.com/gh_mirrors/nv/nvidia-container-toolkit
cd nvidia-container-toolkit
make
sudo make install

配置容器运行时

配置 Docker

编辑或创建 /etc/docker/daemon.json 文件,添加 NVIDIA 运行时配置:

{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

重启 Docker 服务使配置生效:

sudo systemctl restart docker

配置 containerd

对于 containerd,需要编辑 /etc/containerd/config.toml 文件,在 [plugins."io.containerd.grpc.v1.cri".containerd] 部分添加:

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
  privileged_without_host_devices = false
  runtime_engine = ""
  runtime_root = ""
  runtime_type = "io.containerd.runc.v2"
  
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
  BinaryName = "/usr/bin/nvidia-container-runtime"

使用指南

运行 GPU 加速容器

使用 Docker 运行 GPU 加速容器:

# 运行简单的 CUDA 容器测试
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

# 指定特定 GPU
docker run --rm --gpus '"device=0"' nvidia/cuda:11.0-base nvidia-smi

# 使用特定数量的 GPU
docker run --rm --gpus 2 nvidia/cuda:11.0-base nvidia-smi

使用 nvidia-ctk 工具

nvidia-ctk 提供了多种实用功能:

# 生成 CDI 规范
nvidia-ctk cdi generate

# 列出系统信息
nvidia-ctk info list

# 配置容器运行时
nvidia-ctk runtime configure

项目结构说明

NVIDIA Container Toolkit 项目包含以下重要目录:

  • cmd:包含所有可执行命令的源代码
  • internal:内部库和组件实现
  • pkg:公共包和库
  • deployments:部署相关的配置和 Dockerfile
  • packaging:打包配置和脚本

故障排除

常见问题

  1. GPU 未在容器中显示

    • 检查 NVIDIA 驱动程序是否正确安装
    • 确认容器运行时配置正确
  2. 权限问题

    • 确保用户有权限访问 GPU 设备
    • 检查设备节点权限
  3. 版本兼容性

    • 确保 NVIDIA 驱动程序版本与容器工具包兼容

调试命令

# 检查 NVIDIA 驱动程序状态
nvidia-smi

# 验证容器工具包安装
nvidia-container-cli info

# 检查运行时配置
nvidia-container-runtime --version

贡献指南

如果您希望为项目做出贡献,请遵循以下步骤:

  1. 签署开发者证书(DCO)
  2. 遵循代码风格指南
  3. 提交包含详细描述的 Pull Request

所有贡献都需要包含签署行:

Signed-off-by: Your Name <your.email@example.com>

许可证

NVIDIA Container Toolkit 使用 Apache 2.0 许可证。详细信息请查看项目中的 LICENSE 文件。

支持与资源

  • 官方文档:docs/official.md
  • 问题跟踪:issues/
  • 社区讨论:discussions/

通过本指南,您应该能够成功安装、配置和使用 NVIDIA Container Toolkit 来运行 GPU 加速的容器。如有任何问题,请参考官方文档或社区资源。

登录后查看全文
热门项目推荐
相关项目推荐