群晖Docker部署指南:Ollama+Open WebUI+DeepSeek全流程解析
2025.09.15 11:04浏览量:53简介:本文详细介绍了如何在群晖NAS上通过Docker部署Ollama、Open WebUI和DeepSeek的完整流程,涵盖环境准备、镜像拉取、容器配置及优化建议,适合开发者及AI爱好者参考。
群晖Docker部署指南:Ollama+Open WebUI+DeepSeek全流程解析
一、环境准备与前置条件
1.1 群晖NAS硬件要求
- CPU架构:需支持x86-64或ARMv8架构(如DS923+、DS1621+等型号)
- 内存建议:至少8GB RAM(运行DeepSeek模型时建议16GB+)
- 存储空间:预留20GB以上可用空间(模型文件约5-15GB)
1.2 Docker环境配置
- 通过套件中心安装Docker套件(版本需≥20.10)
- 启用SSH服务(控制面板→终端机和SNMP→启动SSH服务)
- 验证Docker运行状态:
sudo docker version# 应返回Client/Server版本信息
二、Ollama容器部署
2.1 镜像拉取与配置
sudo docker pull ollama/ollama:latest
2.2 容器创建参数
| 参数项 | 配置值 | 说明 |
|---|---|---|
| 容器名称 | ollama-server | 自定义标识 |
| 端口映射 | 11434:11434 | Ollama默认API端口 |
| 卷映射 | /volume1/docker/ollama:/root/.ollama | 持久化模型存储路径 |
| 重启策略 | Unless Stopped | 意外退出时自动重启 |
2.3 验证服务运行
sudo docker exec -it ollama-server ollama list# 应返回已安装模型列表(初始为空)
三、DeepSeek模型加载
3.1 模型选择建议
| 模型版本 | 参数规模 | 适用场景 | 硬件要求 |
|---|---|---|---|
| deepseek-r1-7b | 7B | 轻量级文本生成 | 4GB VRAM |
| deepseek-r1-33b | 33B | 专业级复杂任务 | 16GB+ VRAM |
3.2 模型下载命令
sudo docker exec -it ollama-server ollama pull deepseek-r1:7b# 下载进度可通过`ollama list`查看
四、Open WebUI部署
4.1 镜像选择与配置
sudo docker pull ghcr.io/open-webui/open-webui:main
4.2 容器网络配置
# docker-compose.yml示例version: '3'services:webui:image: ghcr.io/open-webui/open-webui:mainports:- "3000:3000"environment:- OLLAMA_HOST=ollama-server- OLLAMA_PORT=11434volumes:- /volume1/docker/webui:/app/backend/datadepends_on:- ollama-server
4.3 初始设置流程
- 访问
http://群晖IP:3000 - 首次登录需设置管理员密码
- 在Settings→Model Provider中配置Ollama连接:
- API Base URL:
http://ollama-server:11434 - 测试连接应返回”Success”
- API Base URL:
五、高级配置与优化
5.1 性能调优参数
# 在Ollama容器启动时添加GPU支持(需安装NVIDIA Container Toolkit)sudo docker run -d --gpus all \-p 11434:11434 \-v /volume1/docker/ollama:/root/.ollama \--name ollama-server \ollama/ollama:latest
5.2 模型缓存优化
- 在
/volume1/docker/ollama下创建cache目录 - 修改Ollama启动参数:
-e OLLAMA_MODELS=/root/.ollama/models \-e OLLAMA_ORIGINS=* \-e OLLAMA_KEEP_ALIVE=5m
5.3 安全加固建议
- 限制WebUI访问IP:
# 在docker-compose中添加network_mode: "host"extra_hosts:- "webui-local:127.0.0.1"
- 启用HTTPS:
- 使用Caddy反向代理
- 配置自动SSL证书(Let’s Encrypt)
六、故障排查指南
6.1 常见问题处理
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 模型加载失败 | 存储权限不足 | 检查卷映射权限(755) |
| API连接超时 | 网络隔离 | 将容器加入相同Docker网络 |
| 响应延迟高 | 内存不足 | 增加交换空间或升级内存 |
6.2 日志分析方法
# 获取Ollama容器日志sudo docker logs ollama-server --tail 100# 获取WebUI错误日志sudo docker exec -it webui-container cat /app/backend/logs/error.log
七、扩展应用场景
7.1 集成HomeAssistant
# 在HA的configuration.yaml中添加llm_model:url: "http://群晖IP:11434"model: "deepseek-r1:7b"
7.2 构建知识库问答系统
- 使用LangChain框架连接Ollama API
- 配置向量数据库(如Chroma)
- 示例调用代码:
from ollama import Chatchat = Chat(model="deepseek-r1:7b", url="http://群晖IP:11434")response = chat.generate("解释量子计算原理")print(response.generations[0].text)
八、维护与升级策略
8.1 定期维护清单
- 每月执行模型更新检查:
sudo docker exec -it ollama-server ollama pull deepseek-r1:7b --update
- 每季度清理未使用的模型缓存:
rm -rf /volume1/docker/ollama/models/*.bin
8.2 版本升级流程
- 备份当前配置:
sudo docker commit ollama-server ollama-backup:$(date +%Y%m%d)
- 删除旧容器并拉取新镜像
- 恢复卷映射和数据
九、性能基准测试
9.1 测试工具推荐
- ollama-benchmark:内置测试套件
- Locust:压力测试工具
- 示例测试命令:
sudo docker exec -it ollama-server ollama run deepseek-r1:7b \--prompt "写一首关于AI的诗" \--temperature 0.7 \--top_k 50
9.2 基准数据参考
| 模型版本 | 首次响应时间 | 吞吐量(tokens/s) |
|---|---|---|
| deepseek-r1-7b | 1.2s | 18-22 |
| deepseek-r1-33b | 3.5s | 8-12 |
十、最佳实践总结
资源分配原则:
- 为Ollama保留至少50%的可用内存
- 避免与其他高负载服务共用同一NAS
模型选择策略:
- 开发测试阶段使用7B模型
- 生产环境根据任务复杂度选择13B/33B版本
备份方案:
- 每周自动备份模型文件至冷存储
- 维护Docker配置的版本控制
通过本指南的完整实施,读者可在群晖NAS上构建功能完备的AI推理环境,实现从模型部署到Web界面交互的全流程自动化。实际部署中建议先在测试环境验证配置,再迁移至生产环境。

发表评论
登录后可评论,请前往 登录 或 注册