要在 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 離線指南。