欢迎光临
我们一直在努力

【信创】银河麒麟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(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案
    • 一、外网准备离线资源(aarch64外网机器执行)
      • 1. 基础软件包
      • 2. Ollama模型打包
      • 3. OpenWebUI镜像导出
    • 二、内网银河麒麟V10部署Docker 26.0.2
    • 三、离线安装 docker compose 插件(命令为 docker compose,无横线)
    • 四、离线部署 Ollama 0.33.3(宿主机二进制,纯CPU推理)
      • 提前预置模型目录-导入离线模型包
      • 建立ollama服务
    • 五、离线导入OpenWebUI镜像 + docker-compose.yml
      • 校验docker0网关IP(确认172.17.0.1)
    • 六、防火墙放行端口(银河麒麟firewalld)
    • 七、访问与RAG实验验证
      • 连通性测试命令
      • 访问openWebUI首页
      • 设置管理员账号(第一个用户默认为管理员)
    • 八、无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

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 【信创】银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址