centos 7 安装NVIDIA Container Toolkit

要在 CentOS 7 上离线安装 NVIDIA Container Toolkit,需确保已安装 NVIDIA 驱动和 Docker 环境。以下是完整步骤及注意事项:


⚙️ 一、环境准备

  1. 验证 NVIDIA 驱动

    运行 nvidia-smi 确认驱动已正确安装,若未安装需先离线安装驱动:

    • 下载对应 GPU 型号的驱动包(如 NVIDIA-Linux-x86_64-xxx.run)。
    • 禁用系统自带 nouveau 驱动(修改 /etc/modprobe.d/blacklist.conf 并重建 initramfs)。
    • 通过 init 3 进入命令行模式安装驱动。
  2. 安装 Docker CE

    若未安装 Docker,需离线部署:

    • 下载 Docker 静态二进制包(如 docker-20.10.9.tgz)。

    • 解压并复制到 /usr/bin/

      bash 复制代码
      tar xzvf docker-20.10.9.tgz
      sudo cp docker/* /usr/bin/
    • 配置 systemd 服务并启动(详见)。


📦 二、获取离线 RPM 包

在联网机器下载所需组件(需与 CentOS 7 架构一致):

bash 复制代码
sudo yum install -y --downloadonly --downloaddir=/path/to/download \
    nvidia-container-toolkit \
    nvidia-container-runtime \
    libnvidia-container1 \
    libnvidia-container-tools \
    nvidia-docker2

关键组件清单

包名 作用 来源
libnvidia-container* 容器底层库支持
nvidia-container-runtime 容器运行时接口
nvidia-container-toolkit 核心工具包
nvidia-docker2 Docker 集成配置

💡 注:将所有 RPM 包传输到目标服务器的离线环境(如 /opt/nvidia-rpms/)。


🔧 三、安装步骤

  1. 批量安装 RPM 包

    进入存放目录执行:

    bash 复制代码
    cd /opt/nvidia-rpms
    sudo rpm -Uvh *.rpm --nodeps --force  # 忽略依赖强制安装

    ⚠️ 若遇依赖错误,需手动补充缺失包(如 dkms)。

  2. 配置 Docker 使用 NVIDIA Runtime

    生成默认配置并重启服务:

    bash 复制代码
    sudo nvidia-ctk runtime configure --runtime=docker  # 生成 /etc/docker/daemon.json
    sudo systemctl restart docker

    确认 /etc/docker/daemon.json 包含:

    json 复制代码
    {
      "runtimes": {
        "nvidia": {
          "path": "nvidia-container-runtime",
          "runtimeArgs": []
        }
      },
      "default-runtime": "nvidia"
    }

🧪 四、验证安装

  1. 检查工具包版本

    bash 复制代码
    nvidia-ctk --version  # 应输出类似 1.14.1
  2. 运行测试容器

    bash 复制代码
    docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

    成功则显示与宿主机一致的 GPU 信息。


⚠️ 关键注意事项

  1. 依赖冲突处理

    若强制安装(--nodeps)后 Docker 启动失败,检查日志 journalctl -u docker,常见问题为内核版本不匹配或缺失 libcuda.so

  2. 离线环境限制

    • CUDA 镜像需提前在联网环境下载(如 nvidia/cuda:11.0-base)。
    • 避免升级内核,否则需重新编译驱动。
  3. GPU 资源隔离

    多容器共享 GPU 时,可通过 docker run --gpus '"device=0"' 指定设备。


💎 额外建议

  • CUDA 版本兼容性 :确保容器内 CUDA 版本 ≤ 宿主机驱动支持的版本(通过 nvidia-smi 顶部显示信息比对)。
  • 替代方案 :若环境允许,优先通过代理设置在线安装(修改 /etc/yum.conf 添加 proxy=http://x.x.x.x:port)。

遇到问题可参考 NVIDIA 官方文档:Container Toolkit 离线指南

相关推荐
森语林溪2 分钟前
大数据环境搭建从零开始(十七):JDK 17 安装与配置完整指南
java·大数据·开发语言·centos·vmware·软件需求·虚拟机
chen_note19 分钟前
Kubernetes1.23版本搭建(三台机器)
运维·容器·kubernetes·云计算·kubepi
花落已飘25 分钟前
openEuler WSL2容器化开发实战:Docker Desktop集成与应用部署
运维·docker·容器
伊卡洛斯az1 小时前
vim的跳转看头文件与分屏
linux·编辑器·vim
paopao_wu1 小时前
DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu
linux·人工智能·ubuntu·ai·ocr
betazhou2 小时前
基于Linux环境使用ogg19版本从oracle 19c ADG备库远程同步数据
linux·运维·oracle·goldengate·adg·远程抽取
路由侠内网穿透.2 小时前
本地部署消息代理软件 RabbitMQ 并实现外部访问( Windows 版本 )
linux·运维·服务器·远程工作
wanhengidc2 小时前
海外云手机是指什么
运维·服务器·游戏·智能手机·云计算
Fanmeang2 小时前
华为防火墙基础功能详解:构建网络安全的基石
运维·网络·安全·华为·防火墙·策略·安全域
孙同学_2 小时前
【Linux篇】System V IPC详解:共享内存、消息队列与信号量
linux·服务器