要在 CentOS 7 上离线安装 NVIDIA Container Toolkit,需确保已安装 NVIDIA 驱动和 Docker 环境。以下是完整步骤及注意事项:
验证 NVIDIA 驱动
运行 nvidia-smi
确认驱动已正确安装,若未安装需先离线安装驱动:
NVIDIA-Linux-x86_64-xxx.run
)。nouveau
驱动(修改 /etc/modprobe.d/blacklist.conf
并重建 initramfs
)。init 3
进入命令行模式安装驱动。安装 Docker CE
若未安装 Docker,需离线部署:
docker-20.10.9.tgz
)。/usr/bin/
:tar xzvf docker-20.10.9.tgz
sudo cp docker/* /usr/bin/
在联网机器下载所需组件(需与 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
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
成功则显示与宿主机一致的 GPU 信息。依赖冲突处理
若强制安装(--nodeps
)后 Docker 启动失败,检查日志 journalctl -u docker
,常见问题为内核版本不匹配或缺失 libcuda.so
。
离线环境限制
nvidia/cuda:11.0-base
)。GPU 资源隔离
多容器共享 GPU 时,可通过 docker run --gpus '"device=0"'
指定设备。
nvidia-smi
顶部显示信息比对)。/etc/yum.conf
添加 proxy=http://x.x.x.x:port
)。遇到问题可参考 NVIDIA 官方文档:Container Toolkit 离线指南。