logo

群晖Docker部署指南:Ollama+Open WebUI+DeepSeek全流程解析

作者:渣渣辉2025.09.17 15:20浏览量:1

简介:本文详细介绍如何在群晖NAS上通过Docker部署Ollama、Open WebUI和DeepSeek的完整流程,涵盖环境准备、容器配置、服务联动及常见问题解决,助力用户快速搭建本地化AI应用环境。

一、部署前环境准备与核心组件解析

1.1 群晖Docker环境基础要求

群晖DSM系统需满足以下条件:

  • 版本要求:DSM 7.0及以上(推荐7.2稳定版)
  • 硬件配置:至少4GB内存(建议8GB+),双核CPU(推荐Intel Celeron J4125或更高)
  • 存储空间:预留20GB以上可用空间(模型文件较大)
  • 网络配置:确保能访问外网(用于拉取镜像),或已配置本地镜像仓库

关键操作

  1. 进入控制面板 > 套件中心,搜索并安装Docker套件
  2. 开启SSH服务(控制面板 > 终端机和SNMP > 启用SSH服务),端口默认22
  3. 通过SSH客户端(如PuTTY)连接NAS,执行docker --version验证安装

1.2 组件功能与依赖关系

  • Ollama:开源模型运行框架,支持多模型管理(如Llama、DeepSeek等)
  • Open WebUI:轻量级Web界面,提供模型交互、任务管理等功能
  • DeepSeek:国内开源大模型,需通过Ollama加载运行

架构图示

  1. 用户请求 Open WebUI Ollama API DeepSeek模型 返回结果

二、分步部署Ollama核心服务

2.1 拉取Ollama官方镜像

通过SSH执行以下命令(推荐使用国内镜像加速):

  1. sudo docker pull ollama/ollama:latest
  2. # 或使用阿里云镜像(需替换为实际地址)
  3. # sudo docker pull registry.cn-hangzhou.aliyuncs.com/ollama/ollama:latest

2.2 创建Ollama容器

在Docker目录下创建配置文件夹:

  1. mkdir -p /volume1/docker/ollama/models

运行容器(关键参数说明):

  1. sudo docker run -d \
  2. --name ollama \
  3. --restart unless-stopped \
  4. -p 11434:11434 \
  5. -v /volume1/docker/ollama/models:/root/.ollama/models \
  6. ollama/ollama
  • -p 11434:11434:暴露Ollama API端口
  • -v:持久化存储模型文件
  • --restart:容器异常时自动重启

2.3 验证Ollama服务

执行以下命令检查运行状态:

  1. sudo docker logs ollama | grep "Server started"
  2. # 正常应输出:Server started on [::]:11434

三、部署Open WebUI交互界面

3.1 拉取Open WebUI镜像

  1. sudo docker pull ghcr.io/open-webui/open-webui:main

3.2 配置容器并联动Ollama

创建配置目录:

  1. mkdir -p /volume1/docker/open-webui/{data,models}

运行容器(重点参数):

  1. sudo docker run -d \
  2. --name open-webui \
  3. --restart unless-stopped \
  4. -p 3000:3000 \
  5. -e OLLAMA_API_URL="http://群晖IP:11434" \
  6. -v /volume1/docker/open-webui/data:/app/backend/data \
  7. -v /volume1/docker/open-webui/models:/models \
  8. ghcr.io/open-webui/open-webui:main
  • OLLAMA_API_URL:必须指向群晖本地IP(避免使用localhost)
  • -p 3000:WebUI访问端口

3.3 访问Web界面

浏览器输入http://群晖IP:3000,首次访问需完成初始化设置:

  1. 设置管理员账号密码
  2. Models选项卡中点击Pull下载DeepSeek模型(如deepseek-ai/DeepSeek-R1
  3. 等待模型下载完成(约10-30分钟,取决于网络速度)

四、DeepSeek模型部署与优化

4.1 通过Ollama加载模型

SSH执行以下命令(需提前下载模型):

  1. # 列出可用模型
  2. curl http://localhost:11434/api/tags
  3. # 运行DeepSeek模型(示例)
  4. sudo docker exec -it ollama ollama run deepseek-ai/DeepSeek-R1:7b

4.2 性能优化建议

  • 内存限制:在容器启动时添加--memory参数(如--memory 6g
  • 模型量化:使用--size 3b参数加载30亿参数版本(牺牲精度换性能)
  • GPU加速(可选):
    若群晖配备NVIDIA显卡,需安装nvidia-docker2并添加--gpus all参数

五、常见问题解决方案

5.1 容器无法启动

现象docker logs ollama显示端口冲突
解决

  1. 检查是否有其他服务占用11434端口:
    1. sudo netstat -tulnp | grep 11434
  2. 终止冲突进程或修改容器端口映射

5.2 模型下载失败

现象:WebUI卡在Pulling model...
解决

  1. 检查网络连接,尝试更换镜像源
  2. 手动下载模型文件(.gguf格式)并放入/volume1/docker/ollama/models
  3. 通过Ollama CLI导入:
    1. sudo docker exec -it ollama ollama pull deepseek-ai/DeepSeek-R1:7b

5.3 访问WebUI显示502错误

现象:浏览器报错502 Bad Gateway
解决

  1. 检查Open WebUI容器日志
    1. sudo docker logs open-webui
  2. 确认Ollama服务正常运行
  3. 重启Open WebUI容器:
    1. sudo docker restart open-webui

六、进阶配置与安全建议

6.1 反向代理配置(使用群晖Reverse Proxy)

  1. 进入控制面板 > 应用程序门户 > 反向代理服务器
  2. 新建规则:
    • 来源:http://群晖域名:端口(如/ai
    • 目标:http://127.0.0.1:3000
  3. 启用HTTPS加密

6.2 数据备份方案

  1. 定期备份模型目录:
    1. sudo tar -czvf /volume1/backups/ollama_models.tar.gz /volume1/docker/ollama/models
  2. 设置群晖Hyper Backup任务自动备份

6.3 资源监控

通过Docker > 容器界面查看实时资源占用,或安装Portainer套件进行可视化管理

七、总结与扩展应用

7.1 部署成果验证

完成部署后,可通过以下方式测试:

  1. 在WebUI输入提示词,检查响应速度与准确性
  2. 通过API调用测试:
    1. curl http://群晖IP:11434/api/chat \
    2. -H "Content-Type: application/json" \
    3. -d '{"model":"deepseek-ai/DeepSeek-R1:7b","messages":[{"role":"user","content":"你好"}]}'

7.2 扩展应用场景

  • 私有知识库:结合LangChain构建文档问答系统
  • 自动化工作流:通过Maken8n连接Ollama API实现任务自动化
  • 多模型管理:在Ollama中同时运行多个模型(如Llama+DeepSeek)

7.3 维护建议

  • 每周检查Docker容器日志
  • 每月更新镜像与模型版本
  • 监控存储空间,及时清理无用模型

通过本教程,用户可在群晖NAS上构建完整的本地化AI服务,兼顾数据隐私与灵活扩展。实际部署中需根据硬件条件调整模型规模,建议从7B参数版本开始测试性能。

相关文章推荐

发表评论