完整脚本:
docker run -d --privileged --gpus all --restart always -v /data/xinference/.xinference:/root/.xinference -v /data/xinference/.cache/huggingface:/root/.cache/huggingface -v /data/xinference/.cache/modelscope:/root/.cache/modelscope -p 9997:9997 xprobe/xinference:v1.5.0 xinference-local -H 0.0.0.0
1. 基础命令
docker run -d
docker run
:启动一个新容器。-d
(detached):容器在后台运行。
2. 权限与资源
--privileged --gpus all
--privileged
:赋予容器特权模式,允许访问宿主机设备(如 GPU、USB 等)。--gpus all
:将宿主机的所有 GPU 资源分配给容器(需提前安装 NVIDIA Container Toolkit)。
3. 重启策略
--restart always
- 容器意外退出时自动重启,适用于需要高可用的服务。
4. 数据卷挂载
-v /data/xinference/.xinference:/root/.xinference
-v /data/xinference/.cache/huggingface:/root/.cache/huggingface
-v /data/xinference/.cache/modelscope:/root/.cache/modelscope
- 持久化配置与缓存:
- 将宿主机的
/data/xinference
目录挂载到容器内,分别保存:- Xinference 配置(
/root/.xinference
)。 - Hugging Face 模型缓存(避免重复下载)。
- ModelScope 模型缓存(同上)。
- Xinference 配置(
- 将宿主机的
5. 网络端口映射
-p 9997:9997
- 将宿主机的 9997 端口映射到容器的 9997 端口,允许外部通过
http://宿主机IP:9997
访问服务。
6. 镜像与启动命令
xprobe/xinference:v1.5.0 xinference-local -H 0.0.0.0
- 镜像:使用
xprobe/xinference
的 v1.5.0 版本。 - 启动命令:
xinference-local
:启动 Xinference 本地服务。-H 0.0.0.0
:绑定到所有网络接口,允许外部访问。
整体作用
该命令启动了一个 Xinference 本地推理服务,支持以下功能:
- GPU 加速:通过
--gpus all
启用。 - 配置持久化:通过挂载卷保留配置和模型缓存。
- 高可用性:崩溃或重启后自动恢复。
- 远程访问:通过端口 9997 提供服务。
典型使用场景
- 部署机器学习模型推理服务(如 LLM、文生图等)。
- 需要复用 Hugging Face 或 ModelScope 的预下载模型。
- 在分布式环境中提供统一的模型服务接口。
如需进一步验证服务状态,可运行:
curl http://localhost:9997
检查是否返回 Xinference 的欢迎信息或 API 文档。