☰
CentOS 7.9 离线安装 NVIDIA Container Toolkit:1.14.0 与 1.20.1 两种版本方案
2026/10/10 2:18:47 网站建设 项目流程

一、背景

在 CentOS 7.9 服务器上使用 Docker 运行 NVIDIA GPU 容器时,除了安装 NVIDIA 显卡驱动,还需要安装 NVIDIA Container Toolkit。

在实际生产环境中,服务器经常无法直接访问互联网,因此比较常见的部署方式是:

联网 CentOS 7.9 │ ├── 配置 CentOS Yum 源 ├── 配置 NVIDIA Container Toolkit 源 ├── 下载 RPM 及依赖 │ ▼ 打包 RPM 离线安装包 │ ▼ 离线 CentOS 7.9 │ ├── 安装 RPM ├── 配置 Docker NVIDIA Runtime └── 验证 GPU 容器

本文整理两套方案:

方案一:NVIDIA Container Toolkit 1.14.0 方案二:NVIDIA Container Toolkit 1.20.1

如果需要兼容已有老环境,可以选择 1.14.0。

如果是新部署环境,可以优先测试 1.20.1。

注意:CentOS 7 已经停止维护,新版本 NVIDIA Container Toolkit 也不再将 CentOS 7 作为当前官方重点测试平台。因此生产部署前建议先使用同版本 CentOS 7.9 测试机验证。


二、环境说明

本文测试环境:

操作系统:CentOS Linux 7.9.2009 架构:x86_64 容器运行时:Docker 安装方式:RPM 离线安装

查看系统:

cat/etc/centos-releaseuname-m

预期:

CentOS Linux release 7.9.2009 (Core) x86_64

三、解决 CentOS 7 Yum 源失效

CentOS 7 已经 EOL,继续使用旧的:

mirrorlist.centos.org

可能出现:

Could not retrieve mirrorlist Cannot find a valid baseurl for repo: base/7/x86_64

因此先切换到 CentOS 7.9.2009 Vault 镜像源。

3.1 备份原 Yum 配置

mkdir-p/etc/yum.repos.d/backupmv/etc/yum.repos.d/CentOS-*.repo\/etc/yum.repos.d/backup/2>/dev/null

3.2 配置阿里云 CentOS Vault

cat>/etc/yum.repos.d/CentOS-Base.repo<<'EOF' [base] name=CentOS-7.9.2009 - Base - Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=0 enabled=1 [updates] name=CentOS-7.9.2009 - Updates - Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck=0 enabled=1 [extras] name=CentOS-7.9.2009 - Extras - Aliyun baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/extras/$basearch/ gpgcheck=0 enabled=1 EOF

清理缓存:

yum clean allrm-rf/var/cache/yum yum makecache

检查:

yum repolist

四、安装 RPM 下载工具

安装:

yuminstall-ycurlwgetyum-utils

检查:

whichcurlwhichyumdownloader

正常应该能够看到:

/usr/bin/curl /usr/bin/yumdownloader

五、配置 NVIDIA Container Toolkit 仓库

下载 NVIDIA 官方 Repository:

curl-s-L\https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo\-o/etc/yum.repos.d/nvidia-container-toolkit.repo

检查:

cat/etc/yum.repos.d/nvidia-container-toolkit.repo

六、CentOS 7 GPG Repository Metadata 问题

CentOS 7 使用较老的 Yum/GPG 组件,实际配置 NVIDIA 仓库时可能遇到:

Gpg Keys not imported, cannot verify repomd.xml for repo libnvidia-container

如果出现该问题,可以关闭 Repository Metadata 的 GPG 检查:

sed-i's/^repo_gpgcheck=1/repo_gpgcheck=0/g'\/etc/yum.repos.d/nvidia-container-toolkit.repo

注意:

repo_gpgcheck=0

表示关闭仓库元数据签名检查。

如果配置中:

gpgcheck=1

仍然保留,则 RPM 软件包自身的 GPG 校验仍可以继续启用。

重新建立缓存:

yum clean allrm-rf/var/cache/yum yum makecache

七、查看 NVIDIA Container Toolkit 可用版本

执行:

yum--showduplicateslist\libnvidia-container1\libnvidia-container-tools\nvidia-container-toolkit\nvidia-container-runtime

在本文环境中,可以看到多个版本,例如:

1.14.0 1.14.1 ... 1.17.x 1.18.x 1.19.x 1.20.0 1.20.1

因此可以根据生产环境兼容性选择版本。


八、方案一:下载 NVIDIA Container Toolkit 1.14.0

对于需要兼容较老环境的 CentOS 7.9,可以选择:

libnvidia-container1 1.14.0-1 libnvidia-container-tools 1.14.0-1 nvidia-container-toolkit 1.14.0-1 nvidia-container-runtime 3.14.0-1

8.1 创建下载目录

mkdir-p/root/nvidia-container-1.14.0cd/root/nvidia-container-1.14.0

8.2 下载 RPM 及依赖

yumdownloader--resolve\libnvidia-container1-1.14.0-1\libnvidia-container-tools-1.14.0-1\nvidia-container-toolkit-1.14.0-1\nvidia-container-runtime-3.14.0-1

检查:

ls-lh

查看 RPM 信息:

rpm-qp--queryformat\'%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n'*.rpm

九、方案二:下载 NVIDIA Container Toolkit 1.20.1

对于新部署环境,可以测试较新的:

NVIDIA Container Toolkit 1.20.1

主要软件包:

libnvidia-container1 libnvidia-container-tools nvidia-container-toolkit-base nvidia-container-toolkit

9.1 创建目录

mkdir-p/root/nvidia-container-1.20.1cd/root/nvidia-container-1.20.1

9.2 下载 RPM

执行:

yumdownloader--resolve\libnvidia-container1-1.20.1-1\libnvidia-container-tools-1.20.1-1\nvidia-container-toolkit-base-1.20.1-1\nvidia-container-toolkit-1.20.1-1

检查:

ls-lh

查看具体版本:

rpm-qp--queryformat\'%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n'*.rpm

正常核心软件包应该类似:

libnvidia-container1 1.20.1-1 x86_64 libnvidia-container-tools 1.20.1-1 x86_64 nvidia-container-toolkit-base 1.20.1-1 x86_64 nvidia-container-toolkit 1.20.1-1 x86_64

新版 Toolkit 不建议再按照旧教程额外混装老版本:

nvidia-container-runtime-3.14.0

应尽量保证整套 NVIDIA Container Toolkit 软件包来自同一版本系列。


十、两个版本怎么选择

简单来说:

场景建议
已有 CentOS 7 老环境1.14.0
需要复刻已有生产环境使用与原环境一致的版本
新部署 CentOS 7.9优先测试 1.20.1
对稳定性要求高先在测试机验证后再部署
新操作系统优先使用较新的 Toolkit

对于 CentOS 7.9,我个人更建议:

老生产环境 ↓ 保持原版本,不为了“最新”强行升级 新部署环境 ↓ 先测试 1.20.1 ↓ Docker GPU 测试全部正常 ↓ 再制作离线包投入生产

十一、制作离线安装包

11.1 1.14.0

cd/roottar-czvfnvidia-container-1.14.0-centos7.tar.gz\nvidia-container-1.14.0/

11.2 1.20.1

cd/roottar-czvfnvidia-container-1.20.1-centos7.tar.gz\nvidia-container-1.20.1/

最后得到:

nvidia-container-1.14.0-centos7.tar.gz nvidia-container-1.20.1-centos7.tar.gz

把对应文件复制到离线 CentOS 7.9 服务器即可。


十二、离线安装 1.14.0

解压:

tar-xzvfnvidia-container-1.14.0-centos7.tar.gzcdnvidia-container-1.14.0

安装:

yum localinstall-y./*.rpm

检查:

rpm-qa|grep-E\'nvidia-container|libnvidia-container'

十三、离线安装 1.20.1

解压:

tar-xzvfnvidia-container-1.20.1-centos7.tar.gzcdnvidia-container-1.20.1

安装:

yum localinstall-y./*.rpm

检查:

rpm-qa|grep-E\'nvidia-container|libnvidia-container'

十四、检查 NVIDIA 驱动

Container Toolkit 并不能代替 NVIDIA GPU 驱动。

首先执行:

nvidia-smi

必须保证宿主机 NVIDIA 驱动本身工作正常。

如果:

nvidia-smi

都不能正常识别 GPU,那么应该先解决宿主机 NVIDIA Driver 问题,而不是继续排查 Docker。


十五、验证 NVIDIA Container Toolkit

检查:

nvidia-container-cli--version

新版还可以:

nvidia-ctk--version

检查 runtime:

whichnvidia-container-runtime

以及:

nvidia-container-runtime--version

十六、配置 Docker 使用 NVIDIA Runtime

如果安装的是支持nvidia-ctk的版本,可以执行:

nvidia-ctk runtime configure--runtime=docker

然后:

systemctl restartdocker

检查:

dockerinfo|grep-iruntime

正常情况下应该能够看到:

nvidia

十七、手工配置 Docker Runtime

如果老版本环境无法使用nvidia-ctk runtime configure,也可以手工配置。

创建:

mkdir-p/etc/docker

编辑:

vi/etc/docker/daemon.json

例如:

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

重启:

systemctl daemon-reload systemctl restartdocker

检查:

dockerinfo|grep-iruntime

十八、测试 Docker GPU

宿主机首先确认:

nvidia-smi

然后使用已有的 CUDA 镜像进行测试:

dockerrun--rm\--runtime=nvidia\--gpusall\<CUDA镜像>\nvidia-smi

如果服务器已经有业务 CUDA 镜像,也可以直接使用已有镜像测试,避免离线环境重新拉取镜像。

正常情况下,容器中的:

nvidia-smi

应该能够识别宿主机 GPU。


十九、常用排查命令

查看安装的软件包:

rpm-qa|grep-E\'nvidia|libnvidia'

查看 NVIDIA Runtime:

whichnvidia-container-runtime

查看 Toolkit:

nvidia-ctk--version

查看 Container CLI:

nvidia-container-cli--version

查看 Docker Runtime:

dockerinfo|grep-iruntime

查看 Docker:

systemctl statusdocker

查看日志:

journalctl-udocker-n100--no-pager

检查 GPU:

nvidia-smi

二十、常见问题

1. Cannot find a valid baseurl

错误:

Cannot find a valid baseurl for repo: base/7/x86_64

原因通常是 CentOS 7 已 EOL,旧 mirrorlist 不再正常工作。

解决方法:

切换到 CentOS 7.9.2009 Vault 源

2. NVIDIA 仓库 GPG 校验失败

例如:

Gpg Keys not imported, cannot verify repomd.xml

可以检查:

grep-E\'gpgcheck|repo_gpgcheck|gpgkey'\/etc/yum.repos.d/nvidia-container-toolkit.repo

CentOS 7 老环境如果 repository metadata 校验存在兼容问题,可以关闭:

repo_gpgcheck=0

然后:

yum clean allrm-rf/var/cache/yum yum makecache

3. nvidia-container-runtime 找不到

检查:

whichnvidia-container-runtimerpm-qa|grepnvidia-container

再检查软件包提供了哪些文件:

rpm-qlnvidia-container-toolkit|\grepruntime

4. Docker 看不到 GPU

按照以下顺序排查:

宿主机 nvidia-smi ↓ NVIDIA Driver ↓ libnvidia-container ↓ NVIDIA Container Toolkit ↓ nvidia-container-runtime ↓ Docker Runtime ↓ GPU Container

不要一开始就排查 Docker。

如果宿主机:

nvidia-smi

失败,那么 Docker GPU 基本也无法正常工作。


二十一、总结

CentOS 7.9 已经属于生命周期结束的操作系统,因此搭建 NVIDIA GPU 容器环境时,需要特别注意 Yum 源和新版软件包兼容性。

本文整理了两种离线安装方案:

方案一 NVIDIA Container Toolkit 1.14.0 + nvidia-container-runtime 3.14.0 适合: 已有老环境、兼容性优先、需要保持版本一致

以及:

方案二 NVIDIA Container Toolkit 1.20.1 适合: 新部署环境,希望使用较新的 NVIDIA Container Toolkit

实际生产环境建议遵循:

先在联网 CentOS 7.9 测试机下载 ↓ 完成实际安装 ↓ 验证 nvidia-smi ↓ 验证 nvidia-container-cli ↓ 验证 Docker Runtime ↓ 验证 Docker GPU ↓ 打包 RPM ↓ 部署到离线生产服务器

对于已经稳定运行的老生产环境,没有必要单纯为了追求最新版本而升级 NVIDIA Container Toolkit。

对于新部署的 CentOS 7.9 环境,可以优先测试 1.20.1;如果出现 CentOS 7 兼容性问题,再考虑使用经过验证的较老版本。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询