centos 7 安装NVIDIA Container Toolkit
要在 CentOS 7 上离线安装 NVIDIA Container Toolkit,需确保已安装 NVIDIA 驱动和 Docker 环境。以下是完整步骤及注意事项:
⚙️ 一、环境准备
-
验证 NVIDIA 驱动
运行nvidia-smi
确认驱动已正确安装,若未安装需先离线安装驱动:- 下载对应 GPU 型号的驱动包(如
NVIDIA-Linux-x86_64-xxx.run
)。 - 禁用系统自带
nouveau
驱动(修改/etc/modprobe.d/blacklist.conf
并重建initramfs
)。 - 通过
init 3
进入命令行模式安装驱动。
- 下载对应 GPU 型号的驱动包(如
-
安装 Docker CE
若未安装 Docker,需离线部署:- 下载 Docker 静态二进制包(如
docker-20.10.9.tgz
)。 - 解压并复制到
/usr/bin/
:tar xzvf docker-20.10.9.tgz sudo cp docker/* /usr/bin/
- 配置 systemd 服务并启动(详见)。
- 下载 Docker 静态二进制包(如
📦 二、获取离线 RPM 包
在联网机器下载所需组件(需与 CentOS 7 架构一致):
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/
)。
🔧 三、安装步骤
-
批量安装 RPM 包
进入存放目录执行:cd /opt/nvidia-rpms sudo rpm -Uvh *.rpm --nodeps --force # 忽略依赖强制安装
⚠️ 若遇依赖错误,需手动补充缺失包(如
dkms
)。 -
配置 Docker 使用 NVIDIA Runtime
生成默认配置并重启服务:sudo nvidia-ctk runtime configure --runtime=docker # 生成 /etc/docker/daemon.json sudo systemctl restart docker
确认
/etc/docker/daemon.json
包含:{"runtimes": {"nvidia": {"path": "nvidia-container-runtime","runtimeArgs": []}},"default-runtime": "nvidia" }
🧪 四、验证安装
- 检查工具包版本:
nvidia-ctk --version # 应输出类似 1.14.1
- 运行测试容器:
成功则显示与宿主机一致的 GPU 信息。docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
⚠️ 关键注意事项
-
依赖冲突处理
若强制安装(--nodeps
)后 Docker 启动失败,检查日志journalctl -u docker
,常见问题为内核版本不匹配或缺失libcuda.so
。 -
离线环境限制
- CUDA 镜像需提前在联网环境下载(如
nvidia/cuda:11.0-base
)。 - 避免升级内核,否则需重新编译驱动。
- CUDA 镜像需提前在联网环境下载(如
-
GPU 资源隔离
多容器共享 GPU 时,可通过docker run --gpus '"device=0"'
指定设备。
💎 额外建议
- CUDA 版本兼容性:确保容器内 CUDA 版本 ≤ 宿主机驱动支持的版本(通过
nvidia-smi
顶部显示信息比对)。 - 替代方案:若环境允许,优先通过代理设置在线安装(修改
/etc/yum.conf
添加proxy=http://x.x.x.x:port
)。
遇到问题可参考 NVIDIA 官方文档:Container Toolkit 离线指南。