Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit

文章目录

  • [该回答整理自 grok4](#该回答整理自 grok4)
      • [在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit](#在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit)
        • [步骤 1: 安装前提包](#步骤 1: 安装前提包)
        • [步骤 2: 配置 NVIDIA Container Toolkit 仓库](#步骤 2: 配置 NVIDIA Container Toolkit 仓库)
        • [步骤 3: 安装 NVIDIA Container Toolkit 包](#步骤 3: 安装 NVIDIA Container Toolkit 包)
    • 下面的内容本次没有采用
        • [步骤 3: 安装 NVIDIA Container Toolkit 包](#步骤 3: 安装 NVIDIA Container Toolkit 包)
        • [步骤 4: 配置容器运行时](#步骤 4: 配置容器运行时)
          • [对于 Docker](#对于 Docker)
          • [对于 containerd(推荐用于 Kubernetes)](#对于 containerd(推荐用于 Kubernetes))
          • [对于 Podman(推荐用于 rootless 容器)](#对于 Podman(推荐用于 rootless 容器))
          • [对于 CRI-O(Kubernetes)](#对于 CRI-O(Kubernetes))
        • [步骤 5: 测试安装](#步骤 5: 测试安装)
        • 故障排除
    • [❤️ 一起学AI](#❤️ 一起学AI)

该回答整理自 grok4

在 Kylin Linux Advanced Server V10 上成功安装 NVIDIA Container Toolkit

Kylin Linux Advanced Server V10 (Halberd) 是基于 Red Hat/CentOS 的 RPM 发行版,因此 NVIDIA Container Toolkit 的安装过程类似于 RHEL/CentOS 系统。NVIDIA 官方支持 RPM-based 发行版(如 RHEL、CentOS、Fedora),并提供标准仓库配置。以下是完整的安装指南,基于 NVIDIA 官方文档(适用于 RPM 系统)。

注意

  • 前提条件
    • 确保已安装 NVIDIA GPU 驱动(版本 ≥ 418.81.07)。如果未安装,请先参考 NVIDIA 驱动安装指南 或 Kylin 官方仓库安装(例如 sudo yum install nvidia-driver)。Kylin 支持 NVIDIA CUDA,因此驱动通常可用。
    • 安装容器运行时(如 Docker、containerd、Podman 或 CRI-O)。如果未安装 Docker,请先运行 sudo yum install docker 并启动服务(sudo systemctl enable --now docker)。
    • 系统需有 NVIDIA GPU 硬件支持。
    • 如果使用 SELinux(Kylin 默认启用),安装后可能需调整策略(见故障排除)。
    • 所有命令需 root 权限,使用 sudo 执行。
  • 潜在问题 :Kylin 的仓库可能需额外配置(如启用 EPEL)。如果 yum 命令失败,先运行 sudo yum update 更新系统。
步骤 1: 安装前提包

安装 curl(用于下载仓库配置):

bash 复制代码
sudo yum install -y curl
步骤 2: 配置 NVIDIA Container Toolkit 仓库

添加 NVIDIA 的 RPM 仓库:

bash 复制代码
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
步骤 3: 安装 NVIDIA Container Toolkit 包
bash 复制代码
sudo yum install -y nvidia-container-toolkit

下面的内容本次没有采用

可选:如果需要实验性包,启用仓库:

bash 复制代码
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
步骤 3: 安装 NVIDIA Container Toolkit 包

安装最新版本(当前推荐 1.18.0-1,根据官方文档):

bash 复制代码
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1
sudo yum install -y \
nvidia-container-toolkit-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools-${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1-${NVIDIA_CONTAINER_TOOLKIT_VERSION}
  • 如果版本不可用,可省略版本号直接安装:sudo yum install -y nvidia-container-toolkit(会安装最新可用版本)。
  • 验证安装:运行 nvidia-ctk --version,应显示版本信息。
步骤 4: 配置容器运行时

根据你的容器引擎配置 NVIDIA 运行时。以下是常见配置:

对于 Docker
  1. 配置 Docker 运行时:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=docker

    这会修改 /etc/docker/daemon.json 文件。

  2. 重启 Docker 服务:

    bash 复制代码
    sudo systemctl restart docker

Rootless 模式(非 root 用户)

  • 使用 nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
  • 重启用户 Docker:systemctl --user restart docker
  • 配置:sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
对于 containerd(推荐用于 Kubernetes)
  1. 配置 containerd:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=containerd

    这会创建 /etc/containerd/conf.d/99-nvidia.toml

  2. 重启 containerd:

    bash 复制代码
    sudo systemctl restart containerd
对于 Podman(推荐用于 rootless 容器)
  • NVIDIA 推荐使用 CDI(Container Device Interface)访问 GPU,无需额外 nvidia-ctk 配置。
  • 直接运行容器:podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
  • 如果需 SELinux 支持:添加 --security-opt=label=disable --hooks-dir=/usr/share/containers/oci/hooks.d/
对于 CRI-O(Kubernetes)
  1. 配置 CRI-O:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=crio
  2. 重启 CRI-O:

    bash 复制代码
    sudo systemctl restart crio
步骤 5: 测试安装

运行一个测试容器验证 GPU 访问(使用 NVIDIA 官方 CUDA 镜像):

bash 复制代码
# 对于 Docker
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi

# 对于 Podman
podman run --rm --device nvidia.com/gpu=all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi

# 对于 containerd/nerdctl
nerdctl run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
  • 输出应显示 nvidia-smi 的 GPU 信息(如 GPU 型号、内存)。如果失败,检查驱动安装或日志(journalctl -u docker)。
故障排除
  • 仓库添加失败 :确保网络正常,或手动下载 repo 文件。Kylin 可能需启用 EPEL:sudo yum install epel-release
  • 包依赖冲突 :运行 sudo yum clean all 清理缓存,或检查 NVIDIA 驱动版本(nvidia-smi)。
  • SELinux 问题 (Kylin 默认启用):容器启动失败时,临时禁用:setenforce 0,或安装 SELinux 策略:sudo yum install container-selinux。永久调整:编辑 /etc/selinux/config 设置 SELINUX=permissive 并重启。
  • systemd cgroup 驱动问题 :如果重载 daemon 后 GPU 丢失,参考 NVIDIA 故障排除
  • Kylin 特定 :如果官方仓库不兼容,检查 Kylin 文档(https://www.kylinos.cn/)或 NVIDIA CUDA 指南(支持 Kylin)。可尝试从源代码构建:git clone https://github.com/NVIDIA/nvidia-container-toolkit && cd nvidia-container-toolkit && make
  • 日志检查dmesg | grep nvidia/var/log/messages

安装完成后,你可以构建和运行 GPU 加速容器。如果遇到具体错误,提供命令输出,我可以进一步诊断!

❤️ 一起学AI


  • ❤️ 如果文章对你有些许帮助、蟹蟹各位读者大大点赞、评论鼓励博主的每一分认真创作
相关推荐
御承扬3 小时前
编程素养提升之EffectivePython(Builder篇)
python·设计模式·1024程序员节
麦麦大数据3 小时前
F032 材料科学文献知识图谱可视化分析系统(四种知识图谱可视化布局) | vue + flask + echarts + d3.js 实现
vue.js·flask·知识图谱·数据可视化·论文文献·1024程序员节·科研图谱
gs801403 小时前
pnpm + webpack + vue 项目依赖缺失错误排查与解决
pnpm·1024程序员节
独自破碎E3 小时前
双堆法求数据流的中位数
1024程序员节
心态还需努力呀4 小时前
异构多活数据架构支持下的医疗业务高可用实践——全栈信创样本分析
1024程序员节
keven-wang4 小时前
网路基础-设备ip地址忘记,有哪些办法可找回设备IP地址?
ip地址·arp·1024程序员节·找设备ip·网络地址解析协议·网络基础协议
墨利昂4 小时前
Git与Gitee使用中的几个问题
1024程序员节
清风6666664 小时前
基于单片机的故障检测自动保护智能防夹自动门设计及LCD状态显示系统
单片机·毕业设计·课程设计·1024程序员节·期末大作业
chenchihwen4 小时前
AI代码开发宝库系列:FAISS向量数据库
数据库·人工智能·python·faiss·1024程序员节