
— 特色专栏 —
大家好,我是民工哥!
手把手教你使用 Docker+GPUStack 快速搭建企业级大模型服务平台,轻松实现从单机到集群的高效扩展!
GPUStack 是一个用于运行 AI 模型的开源 GPU 集群管理器。它具有广泛的硬件兼容性,支持多种品牌的 GPU,并能在 Apple MacBook、Windows PC 和 Linux 服务器上运行。GPUStack 支持各种 AI 模型,包括大型语言模型(LLMs)、扩散模型、音频模型、嵌入模型和重新排序模型。GPUStack 可以轻松扩展,只需添加更多 GPU 或节点即可扩展操作。它支持单节点多 GPU 和多节点推理和服务,并提供多种推理后端,如 llama-box、vox-box 和 vLLM。GPUStack 是一个轻量级的 Python 包,具有最小的依赖项和操作开销,并且提供与 OpenAI 标准兼容的 API。此外,它还简化了用户和 API 密钥的管理,提供了 GPU 性能和利用率的实时监控,以及令牌使用和速率限制的有效跟踪。
llama-box(基于 llama.cpp 和 stable-diffusion.cpp)、vox-box 和 vLLM 作为推理后端。GPUStack 适用于需要高效管理和调度 GPU 资源的场景,特别是在运行 AI 模型时。它支持单节点多 GPU 和多节点推理及服务,并提供多种推理后端,如 llama-box、vox-box 和 vLLM。GPUStack 是一个轻量级的 Python 包,具有最小的依赖项和操作开销,并且提供与 OpenAI 标准兼容的 API。此外,它还简化了用户和 API 密钥的管理,提供了 GPU 性能和利用率的实时监控,以及令牌使用和速率限制的有效跟踪。
以下是使用 Docker 运行 GPUStack 的详细教程,结合官方文档与社区实践整理而成。通过本指南,您可以在支持 NVIDIA GPU 的 Linux 环境中快速部署 GPUStack,并实现异构 GPU 集群的管理与大模型服务。


验证 GPU 与依赖项
# 检查 NVIDIA GPU 是否识别
lspci | grep -i nvidia
root@i-28e6iose:/home/ubuntu# lspci | grep -i nvidia
00:0c.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
00:0d.0 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
# 确认 GCC 已安装
gcc --version
root@i-28e6iose:/home/ubuntu# gcc --version
gcc (Ubuntu 9.5.0-6ubuntu2) 9.5.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the sourcefor copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
安装 NVIDIA 驱动
# 安装内核头文件
sudo apt-get install linux-headers-$(uname -r)
# 添加 CUDA 仓库并安装驱动
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get install nvidia-driver-535 -y
sudo reboot
# 验证驱动
nvidia-smi
root@i-28e6iose:/home/ubuntu# nvidia-smi
Sun Mar 9 20:48:43 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 2080 Ti Off | 00000000:00:0C.0 Off | N/A |
| 22% 29C P8 20W / 250W | 4MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
安装 Docker Engine
# 卸载旧版本 Docker(如有)
sudo apt-get remove docker.io docker-doc containerd
# 添加 Docker 官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
# 验证 Docker
docker info
root@i-28e6iose:/home/ubuntu# docker info
Client: Docker Engine - Community
Version: 28.0.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.21.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.33.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 10
Running: 10
Paused: 0
Stopped: 0
Images: 10
Server Version: 28.0.1
配置 NVIDIA Container Toolkit

nvidia/cuda:12.2.0-base-ubuntu22.04 是一个基于 Ubuntu 22.04 操作系统的 NVIDIA CUDA 基础镜像,用于运行需要 GPU 加速的计算环境。CUDA(Compute Unified Device Architecture)是 NVIDIA 提供的一个并行计算平台和编程模型,它使开发者可以使用 NVIDIA GPU 进行高性能计算。
这个镜像提供了 CUDA 12.2.0 版本,适用于需要利用 NVIDIA GPU 进行深度学习、科学计算和其他计算密集型任务的场景。CUDA 12.2.0 版本带来了许多改进和新特性,包括对新架构的支持、性能优化和新 API。
# 添加仓库并安装工具包
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install nvidia-container-toolkit -y
# 配置 Docker 运行时
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
root@i-28e6iose:/home/ubuntu# sudo nvidia-ctk runtime configure --runtime=docker
INFO[0000] Loading config from /etc/docker/daemon.json
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
# 验证 CUDA 容器
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
root@i-28e6iose:/home/ubuntu# docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
Sun Mar 9 13:10:55 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| 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 2080 Ti Off | 00000000:00:0C.0 Off | N/A |
| 22% 26C P8 21W / 250W | 4MiB / 11264MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
运行 GPUStack 主节点
docker run -d \
--gpus all \
-p 890:80 \
--ipc=host \
--name gpustack \
-v gpustack-data:/var/lib/gpustack \
gpustack/gpustack:latest
参数说明
--gpus all:启用所有 GPU 资源。--ipc=host:共享主机 IPC 命名空间,提升性能。-v gpustack-data:持久化存储配置与模型数据。获取初始密码
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
root@i-28e6iose:/home/ubuntu# docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
rjl@Ainm3dtQ
#账户信息:
admin/rjl@Ainm3dtQ
#修改密码:P@88w0rd
访问 http://<服务器IP>,使用用户名 admin 和上述密码登录,首次需重置密码。

添加 Worker 节点
在主节点获取 Token:
docker exec -it gpustack cat /var/lib/gpustack/token
在 Worker 节点运行:
docker run -d \
--gpus all \
--network=host \
--ipc=host \
gpustack/gpustack \
--server-url http://<主节点IP> \
--token <获取的Token>
部署大模型
在 GPUStack 控制台的 Models 页面,支持从 Hugging Face 或本地导入模型。例如部署 Llama3.2 模型时,系统会自动分配 GPU 资源并生成 API 端点。
Playground 调测
在 Playground 中可测试多模态模型(如 Stable Diffusion)、文本嵌入模型(BERT)等,支持多模型对比与参数优化。
nvidia-smi 是否正常,并确认 Docker 运行时配置正确。--ipc=host 并挂载持久化卷。通过以上步骤,您可快速搭建一个支持异构 GPU 资源调度的企业级大模型服务平台,实现从单机到集群的高效扩展。
来源:blog.csdn.net/shenhonglei1234/article/details/146139022
👍 如果你喜欢这篇文章,请点赞并分享给你的朋友!