Docker 运行 GPUStack 的详细教程
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 性能和利用率的实时监控,以及令牌使用和速率限制的有效跟踪。
关键特性
- 广泛的硬件兼容性:支持管理 Apple Mac、Windows PC 和 Linux 服务器上不同品牌的 GPU。
- 广泛的模型支持:支持从大语言模型(LLMs)、多模态模型(VLMs)、扩散模型、语音模型到嵌入和重新排序模型的广泛模型。
- 异构 GPU 支持与扩展:能够轻松添加异构 GPU 资源,并按需扩展算力规模。
- 分布式推理:支持单机多卡并行和多机多卡并行推理。
- 多推理后端支持:支持
llama-box(基于 llama.cpp 和 stable-diffusion.cpp)、vox-box和vLLM作为推理后端。 - 轻量级 Python 包:最小的依赖和操作开销。
- OpenAI 兼容 API:提供兼容 OpenAI 标准的 API 服务。
- 用户和 API 密钥管理:简化用户和 API 密钥的管理流程。
- GPU 指标监控:实时监控 GPU 性能和利用率。
- Token 使用和速率统计:有效跟踪 token 使用情况,并管理速率限制。
支持的硬件平台
- Apple Metal(M 系列芯片)
- NVIDIA CUDA(计算能力 6.0 及以上)
- AMD ROCm
- 华为昇腾(CANN)
- 摩尔线程(MUSA)
- 海光 DTK
支持的模型类型
- 大语言模型(LLMs):如 Qwen、LLaMA、Mistral、Deepseek、Phi、Yi 等。
- 多模态模型(VLMs):如 Llama3.2-Vision、Pixtral、Qwen2-VL、LLaVA、InternVL2.5 等。
- 扩散模型:如 Stable Diffusion、FLUX 等。
- 嵌入模型:如 BGE、BCE、Jina 等。
- 重新排序模型:如 BGE、BCE、Jina 等。
- 语音模型:如 Whisper(语音转文本)、CosyVoice(文本转语音)等。
使用场景
GPUStack 适用于需要高效管理和调度 GPU 资源的场景,特别是在运行 AI 模型时。它支持单节点多 GPU 和多节点推理及服务,并提供多种推理后端,如 llama-box、vox-box 和 vLLM。GPUStack 是一个轻量级的 Python 包,具有最小的依赖项和操作开销,并且提供与 OpenAI 标准兼容的 API。此外,它还简化了用户和 API 密钥的管理,提供了 GPU 性能和利用率的实时监控,以及令牌使用和速率限制的有效跟踪。
Docker 运行 GPUStack 的详细教程
https://docs.gpustack.ai/latest/installation/docker-installation/
以下是使用 Docker 运行 GPUStack 的详细教程,结合官方文档与社区实践整理而成。通过本指南,您可以在支持 NVIDIA GPU 的 Linux 环境中快速部署 GPUStack,并实现异构 GPU 集群的管理与大模型服务。


一、环境准备
-
硬件与系统要求
- 确保系统已安装 NVIDIA GPU,并验证驱动兼容性(支持 CUDA 11.0 及以上版本)。
- 推荐使用 Ubuntu 22.04 LTS 或 CentOS 7+ 系统。
-
验证 GPU 与依赖项
# 检查 NVIDIA GPU 是否识别 lspci | grep -i nvidiaroot@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 --versionroot@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 source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
二、安装 NVIDIA 驱动与 Docker
-
安装 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-smiroot@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 inforoot@i-28e6iose:/home/ubuntu# docker info Client: Docker Engine - CommunityVersion: 28.0.1Context: defaultDebug Mode: falsePlugins:buildx: Docker Buildx (Docker Inc.)Version: v0.21.1Path: /usr/libexec/docker/cli-plugins/docker-buildxcompose: Docker Compose (Docker Inc.)Version: v2.33.1Path: /usr/libexec/docker/cli-plugins/docker-composeServer:Containers: 10Running: 10Paused: 0Stopped: 0Images: 10Server 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
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
# 添加仓库并安装工具包 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 dockerroot@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-smiroot@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 容器
-
运行 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_passwordroot@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和上述密码登录,首次需重置密码。

四、扩展 GPU 集群
- 添加 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>
- 在主节点获取 Token:
五、功能使用示例
-
部署大模型
在 GPUStack 控制台的 Models 页面,支持从 Hugging Face 或本地导入模型。例如部署 Llama3.2 模型时,系统会自动分配 GPU 资源并生成 API 端点。 -
Playground 调测
在 Playground 中可测试多模态模型(如 Stable Diffusion)、文本嵌入模型(BERT)等,支持多模型对比与参数优化。
六、常见问题
- GPU 未识别:检查
nvidia-smi是否正常,并确认 Docker 运行时配置正确。 - 容器启动失败:确保已启用
--ipc=host并挂载持久化卷。 - 网络问题:跨节点通信需开放防火墙的 80 端口及内部 RPC 端口(默认为 6789)。
七、参考资源
- GPUStack 官方 Docker 部署文档
- NVIDIA Container Toolkit 配置指南
通过以上步骤,您可快速搭建一个支持异构 GPU 资源调度的企业级大模型服务平台,实现从单机到集群的高效扩展。
相关文章:
Docker 运行 GPUStack 的详细教程
GPUStack GPUStack 是一个用于运行 AI 模型的开源 GPU 集群管理器。它具有广泛的硬件兼容性,支持多种品牌的 GPU,并能在 Apple MacBook、Windows PC 和 Linux 服务器上运行。GPUStack 支持各种 AI 模型,包括大型语言模型(LLMs&am…...
Kubernetes中的 iptables 规则介绍
#作者:邓伟 文章目录 一、Kubernetes 网络模型概述二、iptables 基础知识三、Kubernetes 中的 iptables 应用四、查看和调试 iptables 规则五、总结 在 Kubernetes 集群中,iptables 是一个核心组件, 用于实现服务发现和网络策略。iptables 通…...
解决VScode 连接不上问题
问题 :VScode 连接不上 解决方案: 1、手动杀死VS Code服务器进程,然后重新尝试登录 打开xshell ,远程连接服务器 ,查看vscode的进程 ,然后全部杀掉 [cxqiZwz9fjj2ssnshikw14avaZ ~]$ ps ajx | grep vsc…...
AI 驱动的软件测试革命:从自动化到智能化的进阶之路
🚀引言:软件测试的智能化转型浪潮 在数字化转型加速的今天,软件产品的迭代速度与复杂度呈指数级增长。传统软件测试依赖人工编写用例、执行测试的模式,已难以应对快速交付与高质量要求的双重挑战。人工智能技术的突破为测试领域注…...
【Java代码审计 | 第六篇】XSS防范
文章目录 XSS防范使用HTML转义使用Content Security Policy (CSP)输入验证使用安全的库和框架避免直接使用用户输入构建JavaScript代码 XSS防范 使用HTML转义 在输出用户输入时,对特殊字符进行转义,防止它们被解释为HTML或JavaScript代码。 例如&…...
Android WebSocket工具类:重连、心跳、消息队列一站式解决方案
依赖库 使用 OkHttp 的WebSocket支持。 在 build.gradle 中添加依赖: implementation com.squareup.okhttp3:okhttp:4.9.3WebSocket工具类实现 import okhttp3.*; import android.os.Handler; import android.os.Looper; import android.util.Log;import java.ut…...
认识vue2脚手架
1.认识脚手架结构 使用VSCode将vue项目打开: package.json:包的说明书(包的名字,包的版本,依赖哪些库)。该文件里有webpack的短命令: serve(启动内置服务器) build命令…...
【STM32】STM32系列产品以及新手入门的STM32F103
📢 STM32F103xC/D/E 系列是一款高性能、低功耗的 32 位 MCU,适用于工业、汽车、消费电子等领域;基于 ARM Cortex-M3,主频最高 72MHz,支持 512KB Flash、64KB SRAM,适合复杂嵌入式应用,提供丰富的…...
<建模软件安装教程1>Blender4.2系列
Blender4.2安装教程 0注意:Windows环境下安装 第一步,百度网盘提取安装包。百度网盘链接:通过网盘分享的文件:blender.zip 链接: https://pan.baidu.com/s/1OG0jMMtN0qWDSQ6z_rE-9w 提取码: 0309 --来自百度网盘超级会员v3的分…...
CentOS Docker 安装指南
CentOS Docker 安装指南 引言 Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 容器是完全使用沙箱机制,相互之…...
分布式ID生成方案:数据库号段、Redis与第三方开源实现
分布式ID生成方案:数据库号段、Redis与第三方开源实现 引言 在分布式系统中,全局唯一ID生成是核心基础能力之一。本文针对三种主流分布式ID生成方案(数据库号段模式、Redis方案、第三方开源框架)进行解析,从实现原理…...
tcc编译器教程2 编译lua解释器
本文主要介绍了使用tcc编译器编译lua解释器源码。 1 介绍 lua是一门编程语言,开源且源码很容易编译,我平时用来测试C语言编程环境时经常使用。一般能编译成功就说明编程环境设置正常。下面用之前设置好的tcc编程环境进行测试。 2 获取源码 我一般有保留多个版本的lua源码进…...
利用 requestrepo 工具验证 XML外部实体注入漏洞
1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…...
在 Maven 中使用 <scope> 元素:全面指南
目录 前言 在 Maven 中, 元素用于定义依赖项的作用范围,即依赖项在项目生命周期中的使用方式。正确使用 可以帮助我们优化项目的构建过程,减少不必要的依赖冲突,并提高构建效率。本文将详细介绍 的使用步骤、常见作用范围、代码…...
uni_app实现下拉刷新
1. 在页面配置中启用下拉刷新 首先,你需要在页面的 pages.json 文件中启用下拉刷新功能。 {"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "首页","enablePull…...
PCIe协议之RCB、MPS、MRRS详解
✨前言: PCIe总线的存储器写请求、存储器读完成等TLP中含有数据负载,即Data Payload。Data Payload的长度和MPS(Max Payload Size)、MRRS(Max Read Request Size)和RCB(Read Completion Bounda…...
达梦数据库在Linux,信创云 安装,备份,还原
(一)系统环境检查 1操作系统:确认使用的是国产麒麟操作系统,检查系统版本是否兼容达梦数据库 V8。可以通过以下命令查看系统版本: cat /etc/os-release 2硬件资源:确保服务器具备足够的硬件资源࿰…...
使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile
比起容器、镜像来说,Dockerfile 非常普通,它就是一个纯文本,里面记录了一系列的构建指令,比如选择基础镜像、拷贝文件、运行脚本等等,每个指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤&…...
爬虫案例九js逆向爬取CBA中国篮球网
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、CBA网站分析二、代码 前言 提示:这里可以添加本文要记录的大概内容: 爬取CBA中国篮球网 提示:以下是本篇文章正文内容…...
【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)
文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤(Ollama方式)1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…...
163MusicLyrics全能工具:三步搞定音乐歌词高效解决方案
163MusicLyrics全能工具:三步搞定音乐歌词高效解决方案 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 163MusicLyrics是一款专注于音乐歌词获取与管理的开源…...
Docker容器中运行Windows系统的突破性企业级解决方案:架构解析与部署实践
Docker容器中运行Windows系统的突破性企业级解决方案:架构解析与部署实践 【免费下载链接】windows Windows inside a Docker container. 项目地址: https://gitcode.com/GitHub_Trending/wi/windows 在当今云原生和容器化技术快速发展的背景下,如…...
从CPU指令到C++代码:拆解 std::atomic fetch_add 在 x86 和 ARM 平台上的底层实现与性能差异
从CPU指令到C代码:拆解 std::atomic fetch_add 在 x86 和 ARM 平台上的底层实现与性能差异 在现代高性能并发编程中,原子操作是构建无锁数据结构和线程安全代码的基石。std::atomic 的 fetch_add 操作看似简单,但其底层实现却因硬件架构差异而…...
揭秘手机摄像头隐藏功能:如何实现无网文件传输?
揭秘手机摄像头隐藏功能:如何实现无网文件传输? 【免费下载链接】cfc Demo/test android app for libcimbar. Copy files over the cell phone camera! 项目地址: https://gitcode.com/gh_mirrors/cfc/cfc 你是否曾在没有网络的情况下急需传输文件…...
Qwen-Image-Edit-2509场景应用:品牌VI统一与多语言海报智能修改
Qwen-Image-Edit-2509场景应用:品牌VI统一与多语言海报智能修改 1. 品牌视觉管理的痛点与机遇 全球500强企业的设计总监们每年要面对一个共同难题:如何确保分布在50个国家的分公司,在制作本地化营销素材时,都能严格遵守总部制定…...
原神抽卡记录导出工具:一键备份分析你的抽卡历史数据
原神抽卡记录导出工具:一键备份分析你的抽卡历史数据 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具,它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 项目…...
iOS证书(.p12)和描述文件生成避坑指南:从App ID创建到真机测试UDID添加
iOS证书与描述文件生成全流程解析:从核心概念到实战避坑 第一次接触iOS应用打包的开发者,往往会在证书和描述文件这一关卡住。明明按照教程一步步操作,却总是遇到各种报错——"证书无效"、"描述文件不匹配"、"设备未…...
OpenClaw技能市场巡礼:Qwen3-32B生态实用工具
OpenClaw技能市场巡礼:Qwen3-32B生态实用工具 1. 为什么需要技能市场? 第一次接触OpenClaw时,我被它的基础能力震撼——能像人类一样操作我的电脑,完成文件整理、网页搜索等任务。但真正让我决定长期使用的,是发现它…...
AIGC查重率多少合格?看完这篇就清楚了
相信不少用AI辅助写论文的同学都有过这种焦虑:深夜改完终稿,想起学校要求提交AIGC检测报告,翻遍论坛找不到明确的合格标准,手心出汗反复刷新搜索结果,就怕自己的AI生成占比超标过不了审。作为常年跟各类论文查重工具打…...
WarcraftHelper:开源工具赋能魔兽争霸3现代硬件适配与性能优化全指南
WarcraftHelper:开源工具赋能魔兽争霸3现代硬件适配与性能优化全指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款…...
