centos离线部署nvidia-docker-runtime

参考:

https://zhuanlan.zhihu.com/p/641349918

https://www.hangge.com/blog/cache/detail_3185.html

https://www.server-world.info/en/note?os=Ubuntu_24.04&p=nvidia&f=3

离线rpm包路径:

https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable/

onedrive rpm包下载留存地址:

https://onenote.zznnwn.cloudns.biz/api/raw/?path=/public-tools/nvidia-rpm/nvidia-container-runtime.tar.gz

文档概览

首先下载rpm包到服务器

1
2
3
4
5
6
7
8
9
10
11
# 切换到/opt
cd /opt
#解压nvidia-container-runtime.tar.gz
tar -zxvf nvidia-container-runtime.tar.gz
#离线安装所有rpm包
cd nvidia-container-runtime
rpm -Uvh --force --nodeps *.rpm
#安装完后需要重启容器,未设置为系统启动服务,也可以通过kill docker进程再启动方式重启
systemctl restart docker
#查看安装结果
whereis nvidia-container-runtime

验证是否成功(显示如下则成功)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
root@dmx:/opt/ollama# docker run -it --rm --gpus all registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:ubuntu  nvidia-smi
Tue Jul 23 07:28:58 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.100 Driver Version: 550.100 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4090 D Off | 00000000:01:00.0 Off | Off |
| 0% 40C P5 65W / 425W | 5609MiB / 24564MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
+-----------------------------------------------------------------------------------------+


Author: 粘人的鸭嘴兽的小站🍈
Link: https://sunlight.zznnwn.cloudns.biz/2024/07/15/ubuntu%E9%83%A8%E7%BD%B2nvidia-container-toolkit/
Source: 粘人的鸭嘴兽🍓
Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

系统环境

1)操作系统:CentOS7.9

2)Docker版本:20.10.9

3)NVIDIA 显卡型号:RTX 3090

4)NVIDIA 驱动版本:526.86

安装步骤

1、Docker 下载

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

其他版本可通过一下地址访问,选择对应版本

https://download.docker.com/linux/static/stable/x86_64/

docker 安装包下载

2、Docker安装

1
2
# 拷贝文件到GPU服务器并解压安装文件
tar xzvf docker-20.10.9.tgz

解压docker压缩包

1
2
3
4
# 拷贝到系统脚本目录
sudo cp docker/* /usr/bin/
# 后台启动docker
sudo dockerd &

出现如下内容表名docker 启动完成,回车退出即可

INFO[2023-07-03T14:05:58.369195793+08:00] Docker daemon commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
INFO[2023-07-03T14:05:58.369566710+08:00] Daemon has completed initialization

docker 安装完成

1
2
3
4
#查看docker 版本信息
docker -v
#查看docker 详细信息
docker info

查看docker信息

3、nvidia-docker-runtime安装

1)nvidia-docker-runtime作用

通过nvidia-docker-runtime,可以实现在docker容器内部使用nvidia的gpu 进行相关的模型训练和推理。

docker 安装完成后,可通过docker run 创建常规的docker容器,但是不安装nvidia相关组件无法使用NVIDIA的显卡,docker run 添加 –runtime=nvidia 或者添加–gpus参数报错,并且普通创建的容器执行nvidia-smi 没有返回结果,会出现如下提示。

docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
unknown flag: –gpus

2)不同版本docker 安装nvidia gpu SDK区别

在docker19.x以前的版本需要下载nvidia-docker2来启动容器;通过使用nvidia-docker run或者docker run –runtime=nvidia的方式来指定gpu;

docker19.x后版本使用gpu只需要加个参数–gpus all即可(all:使用所有的gpu,如果要使用2个gpu:–gpus 2,也可直接指定哪几个卡:–gpus ‘“device=1,2”‘

3)nvidia-container-runtime 离线包下载

下载nvidia-container-runtime依赖包到本地,找一台可以上网的centos7.x的虚拟机(vmware虚拟机即可完成)按顺序执行如下命令:

1
2
3
4
5
#安装yum-utils,通过该包的repotrack模块可以快速下载指定包及其所有依赖包。
sudo yum -y install yum-utils
#指定yum镜像源包含nvidia-github
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo

指定yum nvidia镜像源

1
2
3
#下载离线安装包到本地
cd /app/soft/nvidia-container-runtime/
repotrack nvidia-container-runtime

下载nvidia-docker-runtime离线包

1
2
3
# 打包nvidia-container-runtime离线包
cd /app/soft/
tar -zcvf nvidia-container-runtime.tar.gz nvidia-container-runtime/

4)nvidia-container-runtime离线包安装

拷贝nvidia-container-runtime.tar.gz文件到离线GPU服务器,按顺序执行下列命令进行安装、验证。

1
2
3
4
5
6
7
8
9
#解压nvidia-container-runtime.tar.gz
tar -zxvf nvidia-container-runtime.tar.gz
#离线安装所有rpm包
cd nvidia-container-runtime
rpm -Uvh --force --nodeps *.rpm
#安装完后需要重启容器,未设置为系统启动服务,也可以通过kill docker进程再启动方式重启
systemctl restart docker
#查看安装结果
whereis nvidia-container-runtime

或者

银河麒麟V10 Server系统中离线安装nvidia docker方法银河麒麟V10 Server 系统下安装最新的d - 掘金 (juejin.cn) 【未测试】

1
2
3
4
5
sudo rpm -Uvh libnvidia-container-tools-1.10.0-1.x86_64.rpm --nodeps --force
sudo rpm -Uvh nvidia-container-toolkit-1.10.0-1.x86_64.rpm --nodeps --force
sudo rpm -Uvh libnvidia-container1-1.10.0-1.x86_64.rpm --nodeps --force
sudo rpm -Uvh nvidia-docker2-2.11.0-1.noarch.rpm --nodeps --force

CentOS Docker NVIDIA环境离线安装已经完成,下一章将继续离线Docker镜像制作并安装

本文转载自:CentOS Docker NVIDIA环境离线安装 - 知乎 (zhihu.com)

1