前言
由于博主所使用的麒麟操作系统是基于CentOS 7.6进行改造的,导致无法直接在裸机环境中运行Ollama和VLLM等应用。经过深入研究和实践,我们最终采用了Docker容器化部署方案,这也是很多信创厂家改造的方式。其中,Docker镜像源的选择尤为关键,直接影响部署的效率和稳定性。在此特别感谢轩辕镜像提供的优质镜像资源,使得这一部署方案不仅适用于麒麟操作系统,在众多其他国产操作系统上也展现了良好的兼容性和通用性。本文将详细介绍这一部署方案的具体实施步骤,希望能为面临类似技术挑战的开发者提供有价值的参考。
一、环境准备
1.1 安装Docker
yum install docker -y
systemctl start docker
systemctl enable docker
1.2 配置加速镜像源
创建配置文件/etc/docker/daemon.json:
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
重启服务生效:
systemctl daemon-reload
systemctl restart docker
二、Ollama模型服务部署
2.1 基础部署(CPU模式),昇腾的用欧拉可以适配驱动,命令其实都是一样的
# 拉取官方镜像
docker pull ollama/ollama
# 启动容器并运行DeepSeek模型
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker exec -it ollama ollama run deepseek-r1:1.5b
其他方法:不想用ollama,用GPUStack加速(昇腾GPU)
服务端部署
docker run -d --name gpustack \
--restart=unless-stopped \
-e ASCEND_VISIBLE_DEVICES=0 \ # 指定GPU设备索引
-p 80:80 \
--ipc=host \
-v gpustack-data:/var/lib/gpustack \
gpustack/gpustack:latest-GPU
# 获取管理员密码
docker exec -it gpustack cat /var/lib/gpustack/initial_admin_password
Worker节点注册(可选)
# 获取服务器令牌
TOKEN=$(docker exec gpustack cat /var/lib/gpustack/token)
# 启动Worker节点
docker run -d --name gpustack-worker \
-e ASCEND_VISIBLE_DEVICES=0 \
-p 10150:10150 \
-p 40000-41024:40000-41024 \
--ipc=host \
-v gpustack-worker-data:/var/lib/gpustack \
gpustack/gpustack:latest-GPU \
--server-url http://<SERVER_IP> \
--token $TOKEN \
--worker-ip <WORKER_IP>
三、Open WebUI可视化部署
# 拉取最新镜像
docker pull dyrnq/open-webui
# 启动Web服务(需关联Ollama)
docker run -d \
--name webui \
-p 19999:8080 \
--link ollama:ollama \
dyrnq/open-webui
四、服务验证
-
模型服务验证
访问http://localhost:11434
检查Ollama API状态 -
WebUI访问
浏览器打开http://<服务器IP>:19999
即可使用交互界面 -
GPU资源监控
GPUStack控制台可通过http://<服务器IP>:80
查看GPU利用率
五、注意事项
-
硬件要求
- 鲲鹏920处理器(ARMv8架构)
- 昇腾 GPU需已安装CANN工具包(≥5.0.RC2)
- 内存建议≥32GB
-
容器网络配置
- 若跨主机部署需开放
10150
、40000-41024
端口范围 - Docker网桥建议使用
macvlan
模式
- 若跨主机部署需开放
-
模型管理
- Ollama模型默认存储在
/var/lib/docker/volumes/ollama
- 可挂载NFS目录实现分布式存储
- Ollama模型默认存储在
附录:常见问题排查
Q1:GPU设备未识别
# 检查nPU驱动状态
npu-smi info
# 验证设备权限
ls -l /dev/davinci*