离线环境(CentOS 7.6)RTX 4090 + Xinference + 大模型
·
一、核心前提
离线环境需提前下载所有依赖包 / 驱动 / 镜像 / 模型到本地,按「宿主机驱动 → Docker 环境 → Xinference 容器 → 离线模型部署」分步操作,以下是全流程(驱动版本 580.119.02,适配 4090+Xinference)。
二、阶段 1:离线下载所有必要文件(需联网机器提前准备)
1. 驱动及依赖包(CentOS 7.6)
| 文件名 | 下载地址 | 用途 |
|---|---|---|
| NVIDIA-Linux-x86_64-580.119.02.run | NVIDIA 官网 | 4090 离线驱动 |
| kernel-devel-$(uname -r).rpm | CentOS 7.6 镜像源(或阿里云镜像) | 驱动编译依赖 |
| kernel-headers-$(uname -r).rpm | CentOS 7.6 镜像源 | 驱动编译依赖 |
| gcc-4.8.5-44.el7.x86_64.rpm | CentOS 7.6 镜像源 | 驱动编译依赖 |
| make-3.82-24.el7.x86_64.rpm | CentOS 7.6 镜像源 | 驱动编译依赖 |
2. NVIDIA Container Toolkit 离线包(Docker 调用 GPU)
# 联网机器下载(CentOS 7)
mkdir -p /tmp/nvidia-toolkit && cd /tmp/nvidia-toolkit
# 下载repo文件
wget https://nvidia.github.io/libnvidia-container/centos7/libnvidia-container.repo
# 下载所有依赖包(离线安装)
yum install --downloadonly --downloaddir=. nvidia-container-toolkit nvidia-container-runtime nvidia-docker2
# 打包所有rpm
tar -zcvf nvidia-toolkit-centos7.tar.gz ./*
3. Docker 离线安装包(若未装 Docker)
# 联网机器下载Docker CE(CentOS 7)
mkdir -p /tmp/docker && cd /tmp/docker
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/{containerd.io-1.6.28-3.1.el7.x86_64.rpm,docker-ce-24.0.9-1.el7.x86_64.rpm,docker-ce-cli-24.0.9-1.el7.x86_64.rpm,docker-compose-plugin-2.24.7-1.el7.x86_64.rpm}
tar -zcvf docker-centos7.tar.gz ./*
4. Xinference Docker 镜像(离线导入)
# 联网机器拉取并保存镜像
docker pull xprobe/xinference:latest
docker save -o xinference-latest.tar xprobe/xinference:latest
# 可选:提前拉取CUDA基础镜像(验证GPU)
docker pull nvidia/cuda:12.9-base
docker save -o nvidia-cuda-12.9-base.tar nvidia/cuda:12.9-base
5. 大模型离线包(以 Qwen2-7B-Instruct 为例)
从 Hugging Face 下载模型文件(如 qwen2-7b-instruct-q4_0.gguf),保存到本地目录(如 /data/models/qwen2)。没有梯子可以从HF-mirror(https://hf-mirror.com)或者魔搭(https://www.modelscope.cn/home)下载
三、阶段 2:离线部署(CentOS 7.6 目标机器)
步骤 1:禁用 Nouveau 开源驱动(必做)
# 1. 创建禁用配置
sudo vi /etc/modprobe.d/blacklist-nouveau.conf
# 粘贴以下内容
blacklist nouveau
options nouveau modeset=0
# 2. 生成新的initramfs
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
# 3. 重启机器
sudo reboot
# 4. 验证禁用(无输出则成功)
lsmod | grep nouveau
步骤 2:离线安装驱动依赖 + 驱动
# 1. 上传阶段1下载的依赖包到目标机器(如/tmp/packages)
# 2. 安装驱动依赖
cd /tmp/packages
sudo rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm make-3.82-24.el7.x86_64.rpm kernel-devel-$(uname -r).rpm kernel-headers-$(uname -r).rpm
# 3. 安装NVIDIA驱动(580.119.02)
sudo chmod +x NVIDIA-Linux-x86_64-580.119.02.run
# 静默安装(禁用X11,适配服务器)
sudo ./NVIDIA-Linux-x86_64-580.119.02.run -s --no-x-check --no-nouveau-check
# 4. 重启生效
sudo reboot
# 5. 验证驱动(关键!!!)
nvidia-smi
# 预期输出:Driver Version: 580.119.02, CUDA Version: 13.0
步骤 3:离线安装 Docker(若未装)
# 1. 上传docker-centos7.tar.gz到/tmp/docker
cd /tmp/docker
tar -zxvf docker-centos7.tar.gz
# 2. 安装Docker
sudo rpm -ivh ./*
# 3. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 4. 验证Docker
docker --version
步骤 4:离线安装 NVIDIA Container Toolkit
# 1. 上传nvidia-toolkit-centos7.tar.gz到/tmp/nvidia-toolkit
cd /tmp/nvidia-toolkit
tar -zxvf nvidia-toolkit-centos7.tar.gz
# 2. 安装repo文件
sudo cp libnvidia-container.repo /etc/yum.repos.d/
# 3. 离线安装所有rpm包
sudo rpm -ivh ./*.rpm
# 4. 配置Docker运行时
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# 5. 验证GPU+Docker(需先导入nvidia/cuda镜像)
# 导入镜像:
docker load -i /tmp/nvidia-cuda-12.9-base.tar
# 验证(输出GPU信息则成功)
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:12.9-base nvidia-smi
步骤 5:离线导入 Xinference 镜像并启动
# 1. 导入Xinference镜像
docker load -i /tmp/xinference-latest.tar
# 2. 创建本地目录(持久化数据/模型)
sudo mkdir -p /data/xinference/data /data/xinference/models
sudo chmod 777 /data/xinference -R
# 3. 上传离线大模型到/data/xinference/models(如qwen2-7b-instruct-q4_0.gguf)
# 4. 启动Xinference容器(适配4090)
docker run -d \
--name xinference \
--runtime=nvidia \
--gpus all \
--network host \
-v /data/xinference/data:/var/lib/xinference \
-v /data/xinference/models:/models \
-e XINFERENCE_HOME=/var/lib/xinference \
-e XINFERENCE_MODEL_SRC=/models \
-e XINFERENCE_GPU_MEMORY_LIMIT=20GB \
-e CUDA_VISIBLE_DEVICES=0 \
xprobe/xinference:latest
# 5. 验证Xinference启动
docker logs xinference # 无报错则正常
curl http://localhost:9997/api/v1/health # 返回{"status":"healthy"}
步骤 6:部署大模型
这个就简单了,在 http://ip:9997中配置大模型并运行,可以参照其他文章。
四、常见问题及解决方法
| 问题现象 | 原因分析 | 解决方法 |
|---|---|---|
驱动安装报错:unable to load kernel module |
内核版本与驱动不兼容 | 1. 安装对应版本的 kernel-devel/kernel-headers;2. 降级驱动到 535 系列(更稳) |
Docker 启动容器报错:unknown runtime nvidia |
未配置 nvidia 运行时 | 重新执行:sudo nvidia-ctk runtime configure --runtime=docker && systemctl restart docker |
nvidia-smi 提示 No devices were found |
驱动未加载 / 4090 未识别 | 1. 确认 BIOS 开启 PCIe 显卡;2. 重启机器;3. 重新安装驱动(加参数--dkms) |
| Xinference 启动后 GPU 占用为 0 | 未指定--gpus all |
停止容器:docker rm -f xinference,重新启动并加--runtime=nvidia --gpus all |
大模型启动报错:out of memory |
显存不足 | 1. 降低模型量化等级(如 q4_0→q2_K);2. 设置XINFERENCE_GPU_MEMORY_LIMIT=18GB |
CentOS 7 安装 Docker 报错:container-selinux |
缺少 selinux 依赖 | 离线下载container-selinux-2.107-3.el7.noarch.rpm并提前安装 |
总结
- 核心流程:离线下载所有包 → 禁用 Nouveau → 装 580.119.02 驱动 → 装 Docker+NVIDIA Toolkit → 导入 Xinference 镜像 → 启动容器 → 部署离线大模型;
- 关键验证点:
nvidia-smi确认驱动、docker run nvidia/cuda确认 GPU 调用、curl /health确认 Xinference 启动; - 离线核心:提前下载驱动 / 依赖 / 镜像 / 模型,安装时禁用网络源(
--no-index),确保所有依赖闭环。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)