一技安身头像
【信创】银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案封面图

【信创】银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案

在这里插入图片描述

信创银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案

  • 本实验在华为麒麟990(搭载统信UOS20桌面版)、飞腾D2000(该cpu大约2019年定型,搭载银河麒麟v10桌面版)平台上测试通过。飞腾FT2000+/64(该cpu大约2017年定型,没有硬件 FP16(half-precision)NEON 向量运算)实测ollama server无法运行。采购建议:使用较新款CPU

环境:银河麒麟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. 基础软件包

  1. docker-26.0.2.tgz(aarch64静态二进制包)
  2. docker-compose-linux-aarch64(compose插件二进制)
  3. 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 桌面图形界面操作(安全中心手动操作)
  1. 左下角【开始菜单】→【设置】→【安全】→【防火墙与网络保护】(安全中心)
  2. 点击【查看详情】进入防火墙配置页
  3. 找到【端口】标签,点【添加】
    • 第一条:端口11434,协议TCP,勾选永久生效
    • 第二条:端口3000,协议TCP,勾选永久生效
  4. 点击【应用】保存,自动重载防火墙规则
  5. 在端口列表核对,两个端口出现即为成功

七、访问与RAG实验验证

  1. 浏览器访问:http://服务器IP:3000
  2. 首次登录:注册管理员账号
  3. 模型列表识别:deepseek-r1:1.5b、bge-small-zh-v1.5:q4_k_m
  4. 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环境专属调优(飞腾/鲲鹏重点)

  1. 内存建议:最低8GB,16GB内存体验更好;4GB内存可跑,但问答容易交换swap,速度极慢。
  2. 上下文窗口:OpenWebUI对话设置,上下文长度设置为 1024,减少内存占用。
  3. 不建议多用户并发提问,OLLAMA_NUM_PARALLEL=1,一次只处理一轮对话。
  4. 推理速度参考:飞腾D2000,deepseek-r1:1.5b,大约3~6 token/s,适合原型实验。

九、常见故障清单(银河麒麟ARM64,无显卡)

  1. exec format error:包架构错误,必须全部aarch64
  2. OpenWebUI无法连接Ollama:确认Ollama监听0.0.0.0:11434;确认docker0网关IP;防火墙放行11434端口
  3. ollama list为空:模型解压路径错误,模型必须放在 /root/.ollama/models
  4. 推理极慢/ollama进程被kill:内存不足,调小上下文,增加swap分区
  5. 遇到知识库新建后不显示—更换新版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

在这里插入图片描述

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/cnxzzcn/article/details/165469380

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--