使用Ubuntu 22.04 Docker 安装 Xinference 教程
公司最近采购了 2 台服务器,其中一台配备了 2 张 4090 型号 GPU(显存48 * 2),准备拿来搞搞 AI,上周五运维把虚拟机创建好了发给我了,于是周末花了点时间把基础环境给搭建了一下,本文主要记录下在最新 ubuntu22.04 部署 Xinference 教程过程中的笔记手稿整理。
在我自己的使用的环境里基本上很少部署 Xinference,这玩意主要还是针对于企业级的,个人的话部署模型用 ollama 就行了,可以看我早期的这篇文章《使用 Ollama 自建大模型并对接第三方平台二次分发盈利》,但是针对于企业的话,使用Xinference 还是专业点,并且支持的引擎和模型都太多了,基本上满足企业各种部署大模型场景,可以部署聊天模型,向量模型,音视频图片模型以及自定义模型,主要还是因为 ollama 那个东西到目前为止都没办法直接用 dify 对接 重排序 rerank 模型,就整得很麻木,所以直接一步到位 Xinference 。
前置条件
- 一台带了GPU 显卡的服务器(目前我收到的分配资源是 8C16G,直通 2 张显卡都分配上了,100G 系统盘,500G 数据盘)为什么不多分配点?主要还是服务器紧张,前期部署东西少勉强能支持,后期再说扩容的事,反正是虚拟机扩容也简单。
- 一双勤劳的手
- 最好是有科学上网环境,很多东西没科学上网真是太难等待了
- 本文主要在 ubuntu 22.04 系统下进行演示操作,若其他操系统可参考其原理。
若你的机器配置比较低,可以参考下面命令调整 swap 防止机器卡死。
swapoff /swap.img
rm /swap.img
fallocate -l 32G /swap.img
cmod 600 /swap.img
mkswap /swap.img
swapon /swap.img
cat /etc/fstab安装依赖
因为有显卡,所以先要保证显卡驱动正常,为了不污染宿主机环境,本文是采用 docker 部署,关注我的粉丝们都知道能用 docker 绝不会直接使用宿主机物理部署,这样方便一键迁移。
如果你没有安装显卡驱动参考下方命令进行:
# 查看推荐驱动
ubuntu-drivers devices
# 升级系统到最新以及更新依赖
apt-get update && apt upgrade && apt-get install g++ gcc make
# 安装推荐版本 例如: nvidia-driver-580-server
# nvidia-driver-xxx :这是适配大多数用户,一般情况下都可以安装这个
# nvidia-driver-xxx-server :这个适配服务器,有多块GPU调度等情况
# nvidia-driver-xxx-open :这个是开源版本,可以自己修改
apt install nvidia-driver-{VERSION_NUMBER}
# 重启系统
reboot
# 验证查看驱动
nvidia-smi只要确认输出了类似于显卡信息,第一步就操作完成了。
Mon Jan 19 20:07:24 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05 Driver Version: 580.95.05 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| 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 Off | 00000000:03:00.0 Off | Off |
| 30% 30C P8 28W / 450W | 47557MiB / 49140MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
| 1 NVIDIA GeForce RTX 4090 Off | 00000000:03:01.0 Off | Off |
| 30% 34C P8 11W / 450W | 39304MiB / 49140MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 116523 C Model: Qwen3-Embedding-4B-0 8186MiB |
| 0 N/A N/A 134789 C ...l: deepseek-r1-distill-qwen-0 39348MiB |
| 1 N/A N/A 142857 C Xinf vLLM worker: 1 39286MiB |
+-----------------------------------------------------------------------------------------+接下来第二步,因为要在 docker 中调用显卡,所以还需要安装 NVIDIA Container Toolkit,如果默认安装官方的命令安装的话会出现超时的情况,可以使用下面 中国科学院技术大学的镜像命令进行替换。
# 基础依赖
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
# 更新并安装
apt-get update
# 安装
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
# 验证
nvidia-container-runtime --version只要最终输出了类似于下面的版本信息则第二步执行成功:
NVIDIA Container Runtime version 1.18.1
commit: efe99418ef87500dbe059cadc9ab418b2815b9d5
spec: 1.3.0
runc version 1.3.4
commit: v1.3.4-0-gd6d73eb8
spec: 1.2.1
go: go1.24.11
libseccomp: 2.5.5安装 xinference
前面做完了之后保证没问题就直接开始部署xinference平台了。
直接创建一个目录,将 docker-compose.yaml 编排文件写入。GPU数量根据实际参数进行修改。
services:
xinference:
image: xprobe/xinference:v1.17.1-cu129
#image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/xprobe/xinference:v1.7.0.post1
container_name: xinference
restart: unless-stopped
shm_size: '12gb'
ports:
- "9997:9997"
volumes:
- ./data/.xinference:/root/.xinference
- ./data/.cache/huggingface:/root/.cache/huggingface
- ./data/.cache/modelscope:/root/.cache/modelscope
environment:
- HF_ENDPOINT=https://hf-mirror.com
- XINFERENCE_MODEL_SRC=modelscope
- CUDA_VISIBLE_DEVICES=0,1
- XINFERENCE_LOCAL_GPU_COUNT=2
- RAY_RESOURCES={"GPU":2}
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 2
capabilities: [gpu]
command: ["xinference-local", "-H", "0.0.0.0","--log-level","debug"]Xinference 官方镜像已发布在 DockerHub 上的 xprobe/xinference 仓库中。当前可用的标签包括:
nightly-main: 这个镜像会每天从 GitHub main 分支更新制作,不保证稳定可靠。v<release version>: 这个镜像会在 Xinference 每次发布的时候制作,通常可以认为是稳定可靠的。latest: 这个镜像会在 Xinference 发布时指向最新的发布版本- 对于 CPU 版本,增加
-cpu后缀,如nightly-main-cpu。 - 对于 CUDA 12.8 版本,增加
-cu128后缀,如nightly-main-cu128。(Xinference 版本需要介于 v1.8.1 和 v1.15.0) - 对于 CUDA 12.9 版本,增加
-cu129后缀,如nightly-main-cu129。(Xinference 版本需要至少 v1.16.0)
如何你没有科学上网条件拉取镜像会特别慢,可以使用注释里面的国内镜像版本,但是版本可能会不一致。
最后执行 docker-compose up -d, 等待项目启动完成。
访问并部署模型
出现了 logo 之后就直接访问,http://服务器ip:9997,没有登录界面直接进入。
现在就可以选择部署模型。
直接选择合适的模型,一定要选择显存足够的,不然下载下来也运行不起来,下载的时候可以查看日志对应的仓库地址去看在对应的模型介绍。
部署的时候会选择一些参数,简单介绍一下,xinference 官网也是有介绍的,默认 docker 是支持所有模型引擎的。
按照参数设置之后直接点击火箭图标等待部署完成,最好是通过日志查看进度,因为界面上可能很久都不知道进度。
xinference 介绍
- Transformers 引擎:PyTorch(transformers) 引擎支持几乎有所的最新模型,这是 Pytorch 模型默认使用的引擎
vLLM 引擎:vLLM 是一个支持高并发的高性能大模型推理引擎。当满足以下条件时,Xinference 会自动选择 vllm 作为引擎来达到更高的吞吐量。
模型格式为 pytorch , gptq 或者 awq 。 当模型格式为 pytorch 时,量化选项需为 none 。 当模型格式为 awq 时,量化选项需为 Int4 。 当模型格式为 gptq 时,量化选项需为 Int3 、 Int4 或者 Int8 。 操作系统为 Linux 并且至少有一个支持 CUDA 的设备 自定义模型的 model_family 字段和内置模型的 model_name 字段在 vLLM 的支持列表中。- Llama.cpp 引擎:Xinference 通过 xllamacpp 支持 gguf 格式的模型。xllamacpp 由 Xinference 团队开发,并从 v1.6.0 开始成为 llama.cpp 的唯一后端。自 Xinference v1.5.0 起,
llama-cpp-python被弃用;在 Xinference 从 v1.6.0 开始,该后端已被移除。 - SGLang 引擎:SGLang 具有基于 RadixAttention 的高性能推理运行时。它通过在多个调用之间自动重用KV缓存,显著加速了复杂 LLM 程序的执行。它还支持其他常见推理技术,如连续批处理和张量并行处理。
- MLX 引擎:MLX-lm 用来在苹果 silicon 芯片上提供高效的 LLM 推理。
所有目前支持的模型可以参考官方:https://inference.readthedocs.io/zh-cn/latest/models/builtin/llm/index.html
所有名词不懂的大家直接 ai 问就行了明明白白哈哈哈哈。
最后部署聊天模型可以直接点击聊天进行对话尝试。
Dify 对接使用
直接安装 Xorbits Inference 插件按照提示添加各类模型进去即可。
添加完之后就可以对话了。
总结
本文主要写明如何在 ubuntu22.04 下系统使用 docker 运行企业级大模型 xinference 平台,希望对大家有帮助,整个过程中也遇到了很多问题,笔记都是过程中总结出来进行编写的,在运行多个模型的时候,比如聊天模型、嵌入模型、重排序模型要规划好资源利用,注意先后启动顺序,不然会导致不足以加载模型,多卡建议使用 vllm 并行推理大大增加速度体验更好。
参考链接
Ubuntu24.04/22.04重灌筆記:GPU安裝與深度學習
商业转载请联系作者获得授权,非商业转载请注明本文出处及文章链接





