20251220群晖安装Ollama模型
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模型
前置准备
- 群晖需启用 SSH:控制面板 → 终端机和 SNMP → 勾选 “启用 SSH 服务”,端口默认 22,保存后用 PuTTY/Xshell 或 Windows Terminal 登录。
- 确认 CPU 架构:登录后执行
uname -m,x86_64 对应 amd64,ARM 对应 arm64/armhf,用于下载匹配安装包。 - 建议启用 Docker(推荐):套件中心搜索 “Docker” 安装并启动,后续用容器部署更省心。
Docker 安装Ollama模型
- 拉取镜像并创建容器
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一起使用
- 进入容器使用 CLI
bash
# 进入容器终端
docker exec -it ollama /bin/bash
# 验证版本
ollama -v
# 拉取模型(如 Llama‑3)并运行
ollama pull llama3
ollama run llama3
- 宿主机直连 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(最直观)。
核心前提
- 确认群晖和台式机在同一局域网(如都连家里路由器);
- 记录群晖的局域网 IP(DSM → 控制面板 → 网络 → 局域网 → IPv4 地址,如
192.168.31.100); - 确认群晖 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 通用)
- 本地安装 Python,执行
pip install requests; - 创建脚本
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
- 运行脚本:
python ollama_api.py,即可获取群晖 llama3 的回复。
常见问题排查
- 连接超时:
- 确认群晖和台式机同网段,ping 群晖 IP 测试(Windows 执行
ping 192.168.31.100); - 检查群晖 Docker 容器是否正常运行:docker ps确认 ollama 和 open-webui 状态为Up; - 验证群晖 11434 端口可访问:Windows 执行telnet 群晖IP 11434(或用 PortScanner 工具)。 - Web UI 显示 “无法连接 Ollama”:
- 检查启动 Web UI 时的
OLLAMA_BASE_URL是否正确(必须是http://群晖IP:11434,不能写localhost); - 重启 Web UI 容器:docker restart open-webui。 - 本地 CLI 提示 “connection refused”:
- 确认群晖 Ollama 容器端口映射正确(
-p 11434:11434); - 重新设置OLLAMA_HOST环境变量,重启终端后重试。
最佳实践
- 日常使用优先选 Open WebUI,可视化操作无门槛;
- 开发 / 批量指令用 API 调用,灵活度高;
- 习惯终端用 本地 CLI 远程连接,和原生体验一致;
- 若需外网访问(如出门用),可在路由器设置端口映射(11434 端口),但需配合密码 / SSL 加密(不建议裸奔)。