20251220群晖安装Ollama模型

写于 2025-12-20

20251220群晖安装Ollama模型

  • 使用Docker安装到群晖的/volume2/soft/ollama
  • 群晖系统是X86_64系统版本,群晖总内存 7.7GiB、可用内存 6.4GiB,结合 Swap 6.6GiB,优先选 llama3:8b-instruct 的 q4_0 量化版

  • 群晖目前使用端口号:

  • 5000,nas登录入口, http协议 ,http://nas.liufeisheng.cn
  • 5001,nas登录入口,https协议 , https://nas.liufeisheng.cn
  • 5050,test使用,test.liufeisheng.cn, http://nas.liufeisheng.cn
  • 11434,Ollama模型使用,docker容器
  • 8081 , Vanblog博客,映射docker 80 ;
  • 8043, Vanblog博客 ,映射443
  • 8085,open-webui ,docker容器
  • 27017,mongo数据库端口
  • 注意,端口转发要使用fpr实现

群晖安装 Ollama CLI 优先用 Docker 容器(最稳、隔离性好),也可在群晖自带 Linux 环境手动安装,以下是详细步骤与最佳实践。


Docker 安装Ollama模型

前置准备

  1. 群晖需启用 SSH:控制面板 → 终端机和 SNMP → 勾选 “启用 SSH 服务”,端口默认 22,保存后用 PuTTY/Xshell 或 Windows Terminal 登录。
  2. 确认 CPU 架构:登录后执行 uname -m,x86_64 对应 amd64,ARM 对应 arm64/armhf,用于下载匹配安装包。
  3. 建议启用 Docker(推荐):套件中心搜索 “Docker” 安装并启动,后续用容器部署更省心。

Docker 安装Ollama模型

  1. 拉取镜像并创建容器

bash # 拉取 Ollama 官方镜像 docker pull ollama/ollama:latest # 创建并启动容器(端口映射+数据持久化) docker run -d -p 11434:11434 --name ollama --restart always -v /volume2/soft/ollama:/root/.ollama ollama/ollama:latest

  • 后续通过docker-compose与open-webui一起使用
  1. 进入容器使用 CLI

bash # 进入容器终端 docker exec -it ollama /bin/bash # 验证版本 ollama -v # 拉取模型(如 Llama‑3)并运行 ollama pull llama3 ollama run llama3

  1. 宿主机直连 CLI(可选)

安装 curl 后,通过 API 调用或在宿主机安装 Ollama 客户端连接容器服务:

bash # 宿主机安装 Ollama 客户端(与容器同架构) curl -fsSL https://ollama.com/install.sh | sh # 设置连接容器 export OLLAMA_HOST=http://127.0.0.1:11434 # 直接使用 CLI ollama list


常见问题与优化

问题 解决方法
容器启动失败 检查端口 11434 是否被占用;调整数据卷路径(如 /volume1 空间充足)
模型下载慢 容器内设置代理:docker run 时添加 -e HTTP_PROXY=http://代理IP:端口
手动安装权限不足 切换 root 用户(sudo -i)或添加 sudo 执行命令
开机自启失效 Docker 容器加 --restart always;手动安装用群晖任务计划设置开机执行

核心使用命令

命令 功能
ollama pull <模型名> 拉取指定模型(如 llama3、mistral)
ollama run <模型名> 启动模型对话
ollama list 查看本地已下载模型
ollama rm <模型名> 删除不需要的模型
ollama serve 启动 Ollama 服务(后台运行)

一、Llama 3 核心功能(Ollama 部署版)

Meta 推出的 Llama 3 是开源大模型,Ollama 封装后支持多尺寸版本(8B/70B 为主流),核心功能覆盖通用场景 + 编程 + 本地化部署,具体如下:

功能分类 核心能力 典型使用场景
通用自然语言 问答、总结、翻译、文本生成、逻辑推理、多轮对话 日常咨询、文档总结、邮件 / 文案撰写
编程开发 代码生成 / 调试 / 重构、多语言兼容(Python/Java/Go/Shell 等)、代码解释 写脚本、修复 Bug、解释复杂代码逻辑
本地化特性 离线运行(无联网)、数据不出本地、自定义 Prompt 模板、模型微调(进阶) 隐私敏感场景(如内网开发)、定制化问答
Ollama 扩展能力 支持模型组合(Model File)、API 调用、多终端访问(群晖部署后局域网可用) 对接本地应用、跨设备调用 Llama 3

注:Ollama 中 Llama 3 分「基础版」(仅文本)和「Instruct 版」(指令微调,对话更友好),推荐装 llama3:8b-instruct 或 llama3:70b-instruct(后缀 instruct 是对话优化版,日常用更顺手)。

二、Llama 3 各版本存储空间占用(群晖部署重点)

Ollama 中 Llama 3 不同版本的体积差异较大,核心版本的空间占用如下(均为压缩后下载体积,解压后略大 10%-20%):

模型版本 存储空间占用 硬件要求(群晖) 适用场景
llama3:8b-instruct ~4.7GB 任意 x86/ARM 群晖(≥8GB 内存) 日常使用、编程辅助、轻量问答
llama3:70b-instruct ~38GB x86 群晖(≥16GB 内存,建议 32GB) 复杂推理、大文本处理、深度编程
llama3:8b ~4.5GB 同 8b-instruct 纯文本生成(无对话优化)
llama3:70b ~37GB 同 70b-instruct 纯文本生成(无对话优化)
llama3:1b(微型) ~0.6GB 入门级 ARM 群晖(如 DS220j) 极简场景、测试用

目前群晖总内存 7.7GiB、可用内存 6.4GiB,结合 Swap 6.6GiB,优先选 llama3:8b-instruct 的 q4_0 量化版,70B 完全无法运行,下面是具体适配与操作建议。

模型版本 模型体积 内存需求 适配性 推荐指数
llama3:8b-instruct-q4_0 约 4.7GB 4–6GB 可用内存 6.4GiB 足够,配合 Swap 更稳 ★★★★★
llama3:8b-instruct(非量化) 约 4.7GB 6–8GB 勉强运行,可能卡顿 ★★★☆☆
llama3:70b-instruct(任何版本) 40GB+ ≥32GB 内存严重不足,无法启动 ★☆☆☆☆
  • 启动普通ollama模型:ollama run llama3
  • 启动量化版模型:ollama run llama3:8b-instruct-q4_0

使用群晖Ollama模型

群晖 Docker 部署的 Ollama 可通过「网络 API 调用」「Web UI 可视化操作」两种方式让本地台式机(Windows/macOS/Linux)使用,以下是从易到难的完整步骤,优先推荐 Web UI(最直观)。

核心前提

  1. 确认群晖和台式机在同一局域网(如都连家里路由器);
  2. 记录群晖的局域网 IP(DSM → 控制面板 → 网络 → 局域网 → IPv4 地址,如 192.168.31.100);
  3. 确认群晖 11434 端口未被防火墙拦截: - 群晖:控制面板 → 防火墙 → 确认允许 11434 端口(或临时关闭防火墙测试); - 路由器:无需额外端口映射(仅局域网访问)。

方法一:Web UI 可视化使用(推荐,无需命令)

通过第三方 Web UI 连接群晖 Ollama,界面友好,支持对话 / 文件上传 / 模型管理,步骤如下:

1. 群晖端部署 Web UI(Docker 一键启动)

# 拉取 open-webui 镜像(最流行的 Ollama 可视化界面)
docker pull open-webui/open-webui:latest

用 Docker Compose 封装(替代纯 Dockerfile,更简单)

因为你直接使用官方 open-webui/open-webui:latest 镜像(无需自己构建),用 docker-compose.yml 封装所有 run 参数是最优解,比写 Dockerfile 更轻量、易维护。

步骤 1:创建 docker-compose.yml 文件

在群晖的 /volume2/soft/open-webui/ 目录下,新建一个名为 docker-compose.yml 的文件,内容如下:

version: '3.8'  # 兼容群晖Docker版本

services:
  open-webui:
    image: open-webui/open-webui:latest  # 官方镜像,无需构建
    container_name: open-webui          # 容器名
    restart: always                     # 开机自启
    ports:
      - "3000:8080"                     # 端口映射(宿主机3000→容器8080)
    links:
      - ollama:ollama                   # 链接ollama容器(同网络互通)
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434  # 对接ollama的地址
      - TZ=Asia/Shanghai                    # 可选:同步群晖时区(避免日志时间错乱)
    volumes:
      - /volume2/soft/open-webui:/app/backend/data  # 数据持久化
  1 version: '3.8'
  2 
  3 services:
  4   open-webui:
  5     image: ghcr.nju.edu.cn/open-webui/open-webui:main
  6     container_name: open-webui
  7     restart: always
  8     ports:
  9       - "8085:8080"
 10     links:
 11       - ollama:ollama
 12     environment:
 13       - OLLAMA_BASE_URL=http://ollama:11434
 14       - TZ=Asisa/Shanghai
 15     volumes:
 16       - /volume2/docker/open-webui:/app/backend/data
 17     depends_on:
 18       - ollama
 19 
 20   ollama:
 21     image:  ollama/ollama:latest
 22     container_name: ollama
 23     restart: always
 24     ports:
 25       - "11434:11434"
 26     volumes:
 27       - /volume2/docker/ollama:/root/.ollama

步骤 2:简化运行 / 停止命令(核心:记 2 个简单命令即可)

① 启动 Open-WebUI(一键执行)

进入 docker-compose.yml 所在目录(群晖 SSH 执行):

cd /volume2/soft/open-webui
docker-compose up -d  # 仅需记这一行!-d表示后台运行
② 停止 / 重启 / 查看日志(备用简单命令)
# 停止容器
docker-compose stop

# 重启容器
docker-compose restart

# 查看运行日志(排错用)
docker-compose logs -f

2. 本地台式机访问

打开浏览器,输入 http://群晖IP:8085(如 192.168.31.100:3000):

  • 注意不能使用https
  • 首次登录需创建管理员账号;
  • 直接在界面选择 llama3 模型,即可开始对话(无需额外配置)。

优势:支持多轮对话、代码高亮、文件上传、Prompt 模板,新手友好。


方法二:直接调用 API(适合开发 / 集成到工具)

若需将 llama3 集成到本地程序(如 Python 脚本、Notion 插件等),可直接调用群晖 Ollama 的 API:

示例:本地 Python 调用(Windows/macOS 通用)

  1. 本地安装 Python,执行 pip install requests;
  2. 创建脚本 ollama_api.py,替换 群晖IP:
import requests
import json

# 群晖 Ollama 的 API 地址
url = "http://群晖IP:11434/api/chat"
# 请求参数(调用 llama3 模型)
data = {
    "model": "llama3",
    "messages": [{"role": "user", "content": "解释一下快速排序的原理"}],
    "stream": True  # 流式返回(实时输出)
}

# 发送请求并获取结果
response = requests.post(url, json=data, stream=True)
for line in response.iter_lines():
    if line:
        resp = json.loads(line.decode('utf-8'))
        if "message" in resp and "content" in resp["message"]:
            print(resp["message"]["content"], end="")
        if resp.get("done"):
            break
  1. 运行脚本:python ollama_api.py,即可获取群晖 llama3 的回复。

常见问题排查

  1. 连接超时: - 确认群晖和台式机同网段,ping 群晖 IP 测试(Windows 执行 ping 192.168.31.100); - 检查群晖 Docker 容器是否正常运行:docker ps 确认 ollama 和 open-webui 状态为 Up; - 验证群晖 11434 端口可访问:Windows 执行 telnet 群晖IP 11434(或用 PortScanner 工具)。
  2. Web UI 显示 “无法连接 Ollama”: - 检查启动 Web UI 时的 OLLAMA_BASE_URL 是否正确(必须是 http://群晖IP:11434,不能写 localhost); - 重启 Web UI 容器:docker restart open-webui。
  3. 本地 CLI 提示 “connection refused”: - 确认群晖 Ollama 容器端口映射正确(-p 11434:11434); - 重新设置 OLLAMA_HOST 环境变量,重启终端后重试。

最佳实践

  • 日常使用优先选 Open WebUI,可视化操作无门槛;
  • 开发 / 批量指令用 API 调用,灵活度高;
  • 习惯终端用 本地 CLI 远程连接,和原生体验一致;
  • 若需外网访问(如出门用),可在路由器设置端口映射(11434 端口),但需配合密码 / SSL 加密(不建议裸奔)。