环境信息
Windows11 + WSL2 Ubuntu22.04 + RTX 5060Ti 16G + CUDA 13.1 + Python 3.10 + Docker + NVIDIA Container Toolkit + vllm/vllm-openai:latest(Docker)
内容有借鉴群友的文档,再结合本身环境和AI整理完成,实测有效:

更换国内镜像源
国内网络建议使用国内镜像源,以提高组件的安装效率,以下命令适用于Ubuntu22.04使用阿里源:
# 1. 备份原 apt 源文件(和你的命令一致,保留)
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
# 2. 直接写入阿里云源配置(无需手动 vim 编辑,更高效)
sudo tee /etc/apt/sources.list <<-'EOF'
# 阿里云 Ubuntu 22.04 (jammy) 镜像源
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
# 3. 以上sources.list保存后,执行源的更新
sudo apt update && sudo apt upgrade -y
# 4. 安装常用工具
sudo apt install -y curl wget lsb-release gnupg ca-certificates
系统驱动确认
确认 WSL2 GPU 支持: 原则上win11安装驱动之后,WSL2会自动识别到显卡,在Ubuntu对话窗口执行如下命令验证
nvidia-smi
通过NVIDIA-SMI能看到电脑安装的Driver Version驱动版本,以及CUDA版本13.1(vLLM最低要求CUDA 11.8+),还有GPU使用情况:

其它场景,NVIDIA驱动可以通过 Ubuntu官网文档 → how-to → graphics → [install-nvidia-drivers] 获取。
如下是一个安装驱动示例仅供参考:
# 安装驱动管理工具
sudo apt update
sudo apt install -y ubuntu-drivers-common
# 自动检测并安装推荐驱动
sudo ubuntu-drivers autoinstall
# 安装完成后重启生效
sudo reboot
# 安装完成后重启,运行nvidia-smi如有输出则说明安装成功
nvidia-smi
安装 Docker(国内源)
参考Docker官网手册 [Install Docker Engine on Ubuntu] 进行Docker的安装。
还可以使用国内阿里镜像安装Docker引擎:
# 导入Docker官方签名密钥,确保源可信
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加目录
sudo mkdir -p /etc/apt/sources.list.d
# 添加 Docker 官方 apt 源(阿里云镜像) 配置 apt 源指向阿里云,加速下载
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件包索引 并安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 查看docker版本,有输出则说明安装成功
docker -v
# 设置 Docker 服务开机启动
sudo systemctl start docker
sudo systemctl enable docker
配置 Docker 镜像加速:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://14mc21ucusppmu.xuanyuan.run",
"https://dockerproxy.net",
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://docker.fxxk.dedyn.io",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://registry.cn-shanghai.aliyuncs.com",
"https://registry.cn-qingdao.aliyuncs.com",
"https://registry.cn-beijing.aliyuncs.com",
"https://registry.cn-zhangjiakou.aliyuncs.com",
"https://registry.cn-huhehaote.aliyuncs.com",
"https://registry.cn-wulanchabu.aliyuncs.com",
"https://registry.cn-shenzhen.aliyuncs.com",
"https://registry.cn-heyuan.aliyuncs.com",
"https://registry.cn-guangzhou.aliyuncs.com",
"https://registry.cn-chengdu.aliyuncs.com",
"https://docker-0.unsee.tech",
"https://registry.cn-hongkong.aliyuncs.com",
"https://registry.ap-northeast-1.aliyuncs.com",
"https://registry.ap-southeast-1.aliyuncs.com",
"https://registry.ap-southeast-3.aliyuncs.com",
"https://registry.ap-southeast-5.aliyuncs.com",
"https://registry.eu-central-1.aliyuncs.com",
"https://registry.eu-west-1.aliyuncs.com",
"https://registry.us-west-1.aliyuncs.com",
"https://registry.us-east-1.aliyuncs.com",
"https://registry.me-east-1.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://gcr.io",
"https://asia.gcr.io",
"https://eu.gcr.io",
"https://registry.hub.docker.com"
],
"insecure-registries": [
"docker.fxxk.dedyn.io"
]
}
EOF
# 重新加载并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证配置是否生效
docker info | grep -i mirror
#测试拉取镜像并运行
sudo docker run hello-world
安装 NVIDIA Container Toolkit(国内源)
Docker容器中如需使用GPU驱动,需要安装NVIDIA Container Toolkit,参考NVIDIA官方文档 [Installing the NVIDIA Container Toolkit] 。
同样可以使用国内中科大镜像源安装Container Toolkit:
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
curl \
gnupg2
# 使用中科大镜像源
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装container toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# 配置 Docker 使用 nvidia-container-runtime
sudo nvidia-ctk runtime configure --runtime=docker
# 重新启动 Docker 服务使配置生效
sudo systemctl restart docker
# 检查包安装状态(输出版本号即为安装成功)
dpkg -l | grep nvidia-container-toolkit
# 官方最新验证命令(无任何额外依赖,仅需核心包),有输出nvidia-smi信息则说明安装成功
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
拉取 vLLM GPU 镜像
# 拉取vLLM最新稳定GPU镜像
docker pull vllm/vllm-openai:latest
安装 venv 虚拟环境
在虚拟环境下进行python操作,避免冲突:
# 1. 安装pip和venv,后续需要使用
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv
# 2. 检查Python3是否安装:一般都自带了Python3环境,此步仅仅是为了检查确认一下
python3 --version
# 3. 先创建并激活虚拟环境
python3 -m venv ~/vllm-env
# 4. 激活虚拟环境(激活后终端前缀会显示 (vllm-env))
source ~/vllm-env/bin/activate
# 5. 退出虚拟环境方法
deactivate
魔搭社区部署启动模型
安装modelscope
# 1. 激活虚拟环境
source ~/vllm-env/bin/activate
# 2. 安装modelscope
pip install modelscope -i https://mirrors.aliyun.com/pypi/simple/
# 3. 完成退出虚拟环境
deactivate
Qwen3-4B-Instruct-2507-FP8语言模型
# 1. 激活虚拟环境
source ~/vllm-env/bin/activate
# 2. 下载模型
modelscope download --model Qwen/Qwen3-4B-Instruct-2507-FP8 --local_dir ~/models/Qwen3-4B-Instruct-2507-FP8
# 3. 下载完成退出虚拟环境
deactivate
# 4. 下载非思考模板
sudo mkdir -p ~/models/chat-template
cd ~/models/chat-template/
wget https://qwen.readthedocs.io/en/latest/_downloads/c101120b5bebcc2f12ec504fc93a965e/qwen3_nonthinking.jinja
# 5. 启动模型
docker run -d --name vllm-qwen3-4b-fp8 \
--gpus '"device=0"' \
--shm-size=2g \
-p 18080:8080 \
-v /home/demo/models:/models:ro \
vllm/vllm-openai:latest \
--host 0.0.0.0 \
--port 8080 \
--model /models/Qwen3-4B-Instruct-2507-FP8 \
--served-model-name qwen3-4b-fp8 \
--tensor-parallel-size 1 \
--max-num-seqs 16 \
--enable-auto-tool-choice \
--chat-template /models/chat-template/qwen3_nonthinking.jinja \
--tool-call-parser hermes \
--gpu-memory-utilization 0.5 \
--max-model-len 4096
# 查看日志
docker logs -f vllm-qwen3-4b-fp8
# openai测试模型
curl http://127.0.0.1:18080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-4b-fp8",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "用一句话介绍 vLLM。"}
],
"temperature": 0.7
}'
BAAI/bge-m3文本向量模型
从魔搭社区下载Embedding文本向量模型bge-m3并启动运行:
# 1. 激活虚拟环境
source ~/vllm-env/bin/activate
# 2. 下载模型
modelscope download --model BAAI/bge-m3 --local_dir ~/models/bge-m3
# 3. 下载完成退出虚拟环境
deactivate
# 4. 启动模型
docker run -d --name vllm-bge-m3 \
--gpus '"device=0"' \
--shm-size=2g \
-p 18081:8081 \
-v /home/demo/models:/models:ro \
vllm/vllm-openai:latest \
--host 0.0.0.0 \
--port 8081 \
--model /models/bge-m3 \
--served-model-name bge-m3 \
--max-num-seqs 4 \
--max-model-len 8192
# 5. 查看日志
docker logs -f vllm-bge-m3
# 测试模型
curl -X POST "http://127.0.0.1:18081/v1/embeddings" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer " \
-d '{
"model": "bge-m3",
"input": "大语言模型(Large Language Model,简称 LLM)是一种基于深度学习技术的人工智能模型。"
}'
BAAI/bge-reranker-v2-m3下载运行
从魔搭社区下载ReRank重排序模型bge-reranker-v2-m3并启动运行:
# 1. 激活虚拟环境
source ~/vllm-env/bin/activate
# 3. 下载模型
modelscope download --model BAAI/bge-reranker-v2-m3 --local_dir /home/demo/models/bge-reranker-v2-m3
# 4. 下载完成退出虚拟环境
deactivate
# 5. 启动模型
docker run -d --name vllm-bge-reranker-v2-m3 \
--gpus '"device=0"' \
--shm-size=2g \
-p 18082:8082 \
-v /home/demo/models:/models:ro \
vllm/vllm-openai:latest \
--host 0.0.0.0 \
--port 8082 \
--model /models/bge-reranker-v2-m3 \
--served-model-name bge-reranker-v2-m3 \
--max-model-len 8192
# 6. 查看日志
docker logs -f vllm-bge-reranker-v2-m3
# 7. 测试模型
curl -X POST "http://127.0.0.1:18082/v1/rerank" \
-H "Content-Type: application/json" \
-d '{
"model": "bge-reranker-v2-m3",
"query": "什么是大语言模型?",
"documents": [
"大语言模型是基于海量文本数据训练的深度学习模型,能理解和生成人类语言。",
"猫是一种常见的家庭宠物,性格温顺,喜欢吃鱼。",
"大语言模型的代表产品有 GPT、LLaMA 等,广泛用于对话、写作等场景。",
"大语言模型(Large Language Model,简称 LLM)是一种基于深度学习技术的人工智能模型,更可靠的内容生成机制(如事实核查、引用溯源)以及更完善的安全防护策略(如数据脱敏、权限控制、偏见检测),以推动大语言模型向更安全、更可控、更实用的方向发展。",
" 大语言模型主要有有 GPT、LLaMA 和qwen,广泛用于对话、写作等场景。",
"什么是大型建模的模具,大型建模的模具就是用来生成制造大型建模的工具"
],
"top_n": 6
}'
vLLM部署运行qwen3.5系列模型
qwen3.5刚发布,vllm官方要求使用nightly版本,故需要再拉一个镜像部署。 不得不说,所用docker太方便了,可以留存不同版本的vllm,灵活切换。
# 下载vllm nightly版本
docker pull vllm/vllm-openai:nightly
# 虚拟环境下,下载qwen3.5-2b模型
source ~/vllm-env/bin/activate
modelscope download --model Qwen/Qwen3.5-2B --local_dir ~/models/Qwen3.5-2B
deactivate
# vllm nightly运行qwen3.5模型命令
docker run -d \
--name vllm-qwen3.5-2b \
--gpus all \
-p 18088:8088 \
--ipc=host \
-v ~/models/Qwen3.5-2B:/models/Qwen3.5-2B \
vllm/vllm-openai:nightly \
/models/Qwen3.5-2B \
--port 8088 \
--served-model-name qwen3.5-2b \
--tensor-parallel-size 1 \
--max-model-len 4096 \
--gpu-memory-utilization 0.5 \
--max-num-seqs 8 \
--language-model-only
# 测试命令
curl http://127.0.0.1:18088/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-2b",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "用一句话介绍 vLLM。"}
],
"temperature": 0.7
}'
sglang部署运行qwen3.5系列模型
# 下载sglang
docker pull lmsysorg/sglang:latest
# 虚拟环境下,下载qwen3.5-2b模型
source ~/vllm-env/bin/activate
modelscope download --model Qwen/Qwen3.5-2B --local_dir ~/models/Qwen3.5-2B
deactivate
# sglang运行qwen3.5模型命令
docker run -d --gpus all \
--name sglang-qwen3.5-2b \
-p 8090:8000 \
-v ~/models:/models \
lmsysorg/sglang:latest \
python -m sglang.launch_server \
--model-path /models/Qwen3.5-2B \
--served-model-name qwen3.5-2b \
--port 8000 \
--host 0.0.0.0 \
--tp-size 1 \
--mem-fraction-static 0.7 \
--context-length 4096 \
--attention-backend triton
# 测试命令
curl http://127.0.0.1:8090/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-2b",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "用一句话介绍 vLLM。"}
],
"temperature": 0.7
}'
