
信创银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案
- 本实验在华为麒麟990(搭载统信UOS20桌面版)、飞腾D2000(该cpu大约2019年定型,搭载银河麒麟v10桌面版)平台上测试通过。飞腾FT2000+/64(该cpu大约2017年定型,没有硬件 FP16(half-precision)NEON 向量运算)实测ollama server无法运行。采购建议:使用较新款CPU
文章目录
- 信创银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案
-
- 一、外网准备离线资源(aarch64外网机器执行)
-
- [1. 基础软件包](#1. 基础软件包)
- [2. Ollama模型打包](#2. Ollama模型打包)
- [3. OpenWebUI镜像导出](#3. OpenWebUI镜像导出)
- [二、内网银河麒麟V10部署Docker 26.0.2](#二、内网银河麒麟V10部署Docker 26.0.2)
- [三、离线安装 docker compose 插件(命令为 docker compose,无横线)](#三、离线安装 docker compose 插件(命令为 docker compose,无横线))
- [四、离线部署 Ollama 0.33.3(宿主机二进制,纯CPU推理)](#四、离线部署 Ollama 0.33.3(宿主机二进制,纯CPU推理))
- [五、离线导入OpenWebUI镜像 + docker-compose.yml](#五、离线导入OpenWebUI镜像 + docker-compose.yml)
- 六、防火墙放行端口(银河麒麟firewalld)
- 七、访问与RAG实验验证
- [八、无GPU CPU环境专属调优(飞腾/鲲鹏重点)](#八、无GPU CPU环境专属调优(飞腾/鲲鹏重点))
- 九、常见故障清单(银河麒麟ARM64,无显卡)
- 十、启停运维命令(推荐启动顺序)
- 十一、清空数据重装openWebUI
环境:银河麒麟V10 飞腾/鲲鹏 aarch64,内网完全隔离、无外网
组件清单:
docker-26.0.2.tgz、docker-compose-linux-aarch64(作为docker cli插件,命令:
docker compose)、ollama 0.33.3、deepseek-r1:1.5b、bge-small-zh-v1.5:q4_k_m、OpenWebUI v0.10.2架构说明:宿主机二进制部署Ollama做CPU推理;Docker容器运行OpenWebUI;Ollama连接地址使用docker0网关
[http://172.17.0.1:11434](http://172.17.0.1:11434),替代不稳定的host.docker.internal存储规划:
/data/app/openwebui:宿主机绑定挂载,存放用户、对话记录、向量索引openwebui_doc:Docker命名卷,独立存放知识库原始上传文档- WebUI自定义标题:信创本地大模型实验平台
⚠️ 重要前置:所有离线包必须在外网aarch64同架构机器提前准备,拷贝至内网服务器U盘;禁止使用x86_64包,会报exec格式错误。
一、外网准备离线资源(aarch64外网机器执行)
1. 基础软件包
- docker-26.0.2.tgz(aarch64静态二进制包)
- docker-compose-linux-aarch64(compose插件二进制)
- ollama-linux-aarch64 0.33.3
2. Ollama模型打包
#外网aarch64机器拉取模型
ollama pull deepseek-r1:1.5b
ollama pull bge-small-zh-v1.5:q4_k_m
#校验模型
ollama list
#打包ollama模型目录
tar -zcvf ollama_models.tar.gz ~/.ollama/models
换句话说就是要迁移如下文件夹到内网机器上:

3. OpenWebUI镜像导出
docker pull ghcr.io/open-webui/open-webui:v0.10.2
docker save ghcr.io/open-webui/open-webui:v0.10.2 -o openwebui_v0.10.2_aarch64.tar
需要拷贝到内网服务器的全部文件清单:
docker-26.0.2.tgz
docker-compose-linux-aarch64
ollama-linux-aarch64
ollama_models.tar.gz
openwebui_v0.10.2_aarch64.tar
二、内网银河麒麟V10部署Docker 26.0.2
上传 docker-26.0.2.tgz 到服务器 /opt
# 假设文件我们拷贝到了/opt目录下
cd /opt
tar -zxvf docker-26.0.2.tgz
cp docker/* /usr/bin/
#创建docker systemd服务文件
cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
[Install]
WantedBy=multi-user.target
EOF
#重载systemd,启动并设置开机自启
systemctl daemon-reload
systemctl start docker
systemctl enable docker
#验证docker
docker -v

三、离线安装 docker compose 插件(命令为 docker compose,无横线)
插件模式,文件放到docker cli-plugins目录,不再使用/usr/local/bin独立二进制
#创建插件目录
mkdir -p /usr/libexec/docker/cli-plugins
#将二进制放入插件目录,文件名固定为 docker-compose
cp docker-compose-linux-aarch64 /usr/libexec/docker/cli-plugins/docker-compose
chmod +x /usr/libexec/docker/cli-plugins/docker-compose
#【可选】清理旧版独立二进制(防止冲突)
rm -f /usr/local/bin/docker-compose
#验证
docker compose version

输出版本号代表成功,后续命令统一使用
docker compose(空格,无横杠)
四、离线部署 Ollama 0.33.3(宿主机二进制,纯CPU推理)
提前预置模型目录-导入离线模型包
#复制 ollama_models.tar.gz 到/data/app/ollama_data/models
mkdir /data/app/ollama_data/models
tar -zxvf ollama_models.tar.gz /data/app/ollama_data/models
建立ollama服务
cp ollama-linux-aarch64 /usr/local/bin/ollama
chmod +x /usr/local/bin/ollama
#创建ollama系统服务
cat > /etc/systemd/system/ollama.service <<EOF
[Unit]
Description=Ollama Service
After=network.target
[Service]
ExecStart=/usr/local/bin/ollama serve
User=root
Restart=always
Environment="OLLAMA_HOST=0.0.0.0:11434"
#CPU无显卡环境调优参数
Environment="OLLAMA_NUM_PARALLEL=1"
Environment="OLLAMA_MAX_LOADED_MODELS=2"
#模型存放路径-要拷贝到这里
Environment="OLLAMA_MODELS=/data/app/ollama_data/models"
[Install]
WantedBy=multi-user.target
EOF
#重载服务配置
systemctl daemon-reload
#启动ollama
systemctl start ollama
systemctl enable ollama
#验证模型
ollama list
#简单测试模型调用
ollama run deepseek-r1:1.5b
参数说明:
OLLAMA_NUM_PARALLEL=1:同一时间只处理1个请求,CPU环境必加,防止并发卡死OLLAMA_MAX_LOADED_MODELS=2:最多同时加载2个模型(deepseek-r1:1.5b + bge-small-zh-v1.5:q4_k_m)
五、离线导入OpenWebUI镜像 + docker-compose.yml
#导入镜像包
docker load -i openwebui_v0.10.2_aarch64.tar
#创建工作目录
mkdir -p /data/app/openwebui_yml
#创建webui宿主机持久目录
mkdir -p /data/app/openwebui
#编写docker-compose.yml
cd /data/app/openwebui_yml
cat > docker-compose.yml <<EOF
version: '3'
services:
openwebui:
image: ghcr.io/open-webui/open-webui:v0.10.2
container_name: openwebui
restart: always
ports:
- "3000:3000"
volumes:
# OpenWebUI核心数据(用户、对话、向量索引)
- /data/app/openwebui:/app/backend/data
# 知识库文档独立命名卷
- /data/app/openwebui_doc:/app/backend/data/doc
environment:
- OLLAMA_BASE_URL=http://172.17.0.1:11434
- WEBUI_NAME=信创本地大模型实验平台
deploy:
resources:
limits:
cpus: '4'
volumes:
openwebui_doc:
EOF
#启动服务
docker compose up -d

校验docker0网关IP(确认172.17.0.1)
ip addr show docker0

如果输出不是172.17.0.1,把yaml里OLLAMA_BASE_URL修改为实际查到的docker0 inet地址
六、防火墙放行端口(银河麒麟firewalld)
firewall-cmd --add-port=11434/tcp --permanent
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload
#查看放行端口
firewall-cmd --list-ports
- 临时关闭防火墙或如下操作:
银河麒麟 V10 桌面图形界面操作(安全中心手动操作)
- 左下角【开始菜单】→【设置】→【安全】→【防火墙与网络保护】(安全中心)
- 点击【查看详情】进入防火墙配置页
- 找到【端口】标签,点【添加】
- 第一条:端口
11434,协议TCP,勾选永久生效 - 第二条:端口
3000,协议TCP,勾选永久生效
- 第一条:端口
- 点击【应用】保存,自动重载防火墙规则
- 在端口列表核对,两个端口出现即为成功
七、访问与RAG实验验证
- 浏览器访问:
http://服务器IP:3000 - 首次登录:注册管理员账号
- 模型列表识别:
deepseek-r1:1.5b、bge-small-zh-v1.5:q4_k_m - RAG实验流程:
- 知识库 → 创建知识库,上传文档
- 嵌入模型:
bge-small-zh-v1.5:q4_k_m - 对话模型:
deepseek-r1:1.5b - 提问,验证文档检索+模型回答
连通性测试命令
#宿主机本地测试ollama api
curl http://127.0.0.1:11434/api/tags
#进入openwebui容器内部测试连通性
docker exec -it openwebui curl http://172.17.0.1:11434/api/tags

访问openWebUI首页
http://localhost:3000

设置管理员账号(第一个用户默认为管理员)



配置调优请转移至:https://blog.csdn.net/cnxzzcn/article/details/165491121
八、无GPU CPU环境专属调优(飞腾/鲲鹏重点)
- 内存建议:最低8GB,16GB内存体验更好;4GB内存可跑,但问答容易交换swap,速度极慢。
- 上下文窗口 :OpenWebUI对话设置,上下文长度设置为
1024,减少内存占用。 - 不建议多用户并发提问,
OLLAMA_NUM_PARALLEL=1,一次只处理一轮对话。 - 推理速度参考:飞腾D2000,deepseek-r1:1.5b,大约3~6 token/s,适合原型实验。
九、常见故障清单(银河麒麟ARM64,无显卡)
exec format error:包架构错误,必须全部aarch64- OpenWebUI无法连接Ollama:确认Ollama监听
0.0.0.0:11434;确认docker0网关IP;防火墙放行11434端口 - ollama list为空:模型解压路径错误,模型必须放在
/root/.ollama/models - 推理极慢/ollama进程被kill:内存不足,调小上下文,增加swap分区
- 遇到知识库新建后不显示---更换新版chrome浏览器即可

十、启停运维命令(推荐启动顺序)
#停止整套服务
cd /data/app/openwebui_yml
docker compose down
systemctl stop ollama
systemctl stop docker
#启动整套服务(顺序不能乱)
systemctl start docker
cd /data/app/openwebui_yml && docker compose up -d
systemctl start ollama
#查看webui日志
docker compose logs -f openwebui
十一、清空数据重装openWebUI
#停止服务
cd /data/app/openwebui_yml
docker compose down -v
#删除持久化卷-清空数据清空账号
rm -rf /data/app/openwebui
rm -rf /data/app/openwebui_doc
#重构并启动服务
docker compose up -d
