当前位置: 首页 > news >正文

使用 Docker 安装 Open WebUI 并集成 Ollama 的 DeepSeek 模型

文章目录

  • 使用 Docker 安装 Open WebUI 并集成 Ollama 的 DeepSeek 模型
    • 前提条件
    • 1. 安装ollama
    • 2. 拉取deepseek的模型
    • 3. Open-WebUI 说明
    • 4. 启动容器
      • 文档的方法如下
      • 优化命令(可选)
        • 1. 增加了健康检查机制(`--health-cmd`)
        • 2. 使 WebUI 服务更稳定
        • 3. 避免容器启动时的误报(`--health-start-period 60s`)
        • 4. 更灵活的健康检查配置
        • 🚀
    • 5. 配置 Open-WebUI
        • 页面如下所示
        • 知识库
        • 多用户管理
        • 局域网其他用户访问
    • 6. 结论

使用 Docker 安装 Open WebUI 并集成 Ollama 的 DeepSeek 模型

在本教程中,我们将指导您如何使用 Docker 安装 Open WebUI,并将其与 Ollama 的 DeepSeek 模型集成。这种方法可以简化部署过程,并确保环境的一致性。

前提条件

  • 操作系统:Windows、macOS 或 Linux
  • 硬件要求:建议至少有 16GB 内存。如果要运行更大的模型,需要更多的内存。
  • **显存要求:**deepseek:1.5b需要2G显存,8b需要6.9G显存,14b需要11G显存。如下图
  • 已安装 Docker:如果尚未安装,请参考 Docker 官方文档 进行安装。

本文基于win11操作系统。

在这里插入图片描述

1. 安装ollama

进入ollama官网,下载对应的客户端

ollama官网:https://ollama.com/

2. 拉取deepseek的模型

进入如下网站,拉取不同的deepseek模型:

deepseek模型:https://ollama.com/library/deepseek-r1

默认拉取的是7b模型

ollama run deepseek-r1

1.5b模型

ollama run deepseek-r1:1.5b

14b模型

ollama run deepseek-r1:14b

r1后面的数字就是对应不同的参数模型,其他模型可参见官网代码。

在这里插入图片描述

使用如下命令查看模型是否已经存在:

ollama list

在这里插入图片描述

3. Open-WebUI 说明

open-webui仓库:https://github.com/open-webui/open-webui

访问上述网站,可以查看更多的open-webui详细说明。

虽说可以通过conda新建虚拟环境安装,但还是推荐使用Docker安装。

open-webui的文档说明:https://docs.openwebui.com/

4. 启动容器

文档的方法如下

如果你电脑安装了ollama,不使用gpu,使用如下命令:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

为了应用支持Nvidia GPU的open webui,使用如下命令:

docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
参数作用
-d让容器后台运行
-p 3000:8080把宿主机 3000 端口映射到容器的 8080 端口
--gpus all允许容器使用 GPU(需 NVIDIA 设备)
--add-host=host.docker.internal:host-gateway让容器能访问宿主机
-v open-webui:/app/backend/data持久化存储 Open-WebUI 数据
--name open-webui给容器命名为 open-webui
--restart always让容器在崩溃或重启后自动恢复
ghcr.io/open-webui/open-webui:cuda使用 Open-WebUI CUDA 版本镜像

优化命令(可选)

启用支持GPU的open webui,并增加健康检查:

docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway --health-cmd "curl -fsSL http://localhost:8080 || exit 1" --health-interval 60s --health-retries 5 --health-timeout 20s --health-start-period 60s --restart=always -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
1. 增加了健康检查机制(--health-cmd
  • 问题

    (基础版):

    • 仅依靠 --restart=always,Docker 只有在容器完全崩溃时才会重启它。
    • 如果 Web 服务挂掉了(但容器仍然运行),Docker 无法检测到,导致 WebUI 看似“正常运行”,但实际上用户无法访问。
  • 优化

    (改进版):

    • 通过 --health-cmd "curl -fsSL http://localhost:8080 || exit 1"每 60 秒检查一次 API 是否存活,确保 WebUI 真正可用
    • 如果 API 失去响应,Docker 会自动将容器标记为 unhealthy,并可能触发重启。

2. 使 WebUI 服务更稳定
  • 问题(基础版):

    • 由于 没有健康检查,如果 WebUI 进程崩溃但容器仍在运行,Docker 不会检测到问题,用户可能无法访问 WebUI。
  • 优化(改进版):

    • 结合 HEALTHCHECK--restart=always

      • Web 服务异常 → 健康检查失败容器被标记 unhealthy
      • 可以手动检查问题,或使用外部监控工具观察容器状态。

3. 避免容器启动时的误报(--health-start-period 60s
  • 问题(基础版):
    • 容器刚启动时,WebUI 可能还没完全就绪,如果立即运行健康检查,可能会误判它“宕机”并触发不必要的重启。
  • 优化(改进版):
    • 添加 --health-start-period 60s,启动后 60 秒内不执行健康检查,避免因启动时间较长导致误判

4. 更灵活的健康检查配置
参数基础版优化版(改进点)作用
--health-cmd❌ 无✅ curl -fsSL http://localhost:8080
--health-interval 60s❌ 无✅ 60 秒检测一次定期检查 WebUI 是否存活
--health-retries 5❌ 无✅ 允许 5 次失败避免短暂波动导致误判
--health-timeout 20s❌ 无✅ 每次检查最长等待 20 秒适应 WebUI 可能的响应延迟
--health-start-period 60s❌ 无✅ 60 秒后才开始检查避免容器刚启动时误判

🚀
方式是否有健康检查是否能检测 API 状态自动重启能力恢复速度
基础版仅在容器崩溃时重启⚠️ 可能 WebUI 已坏但不会重启
优化版(有健康检查)使用 curl 确保 API 正常进程崩溃或 API 不可用时重启🚀 更快发现问题并恢复

5. 配置 Open-WebUI

现在,我们需要配置 Open-WebUI,使其能够使用我们下载的 DeepSeek 模型。

  1. 访问 Open-WebUI

    在浏览器中,导航到 http://localhost:3000。如果这是您第一次访问,您需要创建一个管理员账户。
    http://localhost:3000/

  2. 配置模型

    在 Open-WebUI 的设置中,添加一个新的模型配置,选择 Ollama 作为提供者,并指定您下载的 DeepSeek 模型的名称,例如 deepseek-r1

  3. 保存设置

    保存您的设置,然后返回主界面,您现在应该能够使用 DeepSeek 模型进行推理了。

页面如下所示

可以自由切换不同模型
在这里插入图片描述

知识库

在工作空间中,可以上传对应的知识库,使模型学习到领域知识。

多用户管理

在管理员面板中,可以增加不同用户,设置不同的权限。

局域网其他用户访问

查看部署open webui的宿主机,查看IPv4地址,例如为:1.1.1.1
局域网内其他用户使用浏览器访问IP+端口号,例如:1.1.1.1:3000,输入用户名密码登录即可使用。

6. 结论

通过以上步骤,您已经成功地使用 Docker 安装了 Open-WebUI,并将其与 Ollama 的 DeepSeek 模型集成。这种方法不仅简化了部署过程,还确保了环境的一致性。您现在可以在本地环境中体验强大的语言模型功能。

相关文章:

  • React 低代码项目:组件设计
  • Golang的并发编程案例详解
  • Linux相关知识点(持续更新)
  • 【戒抖音系列】短视频戒除-1-对推荐算法进行干扰
  • PostgreSQL错误: 编码“UTF8“的字符0x0xe9 0x94 0x99在编码“WIN1252“没有相对应值
  • YOLO11 【三】 【速通 训练+推理+导出 续】
  • 【MySQL】InnoDB单表访问方法
  • 【逆向工程】破解unity的安卓apk包
  • 如何使用DHTMLX Scheduler的拖放功能,在 JS 日程安排日历中创建一组相同的事件
  • AI软件外包需要注意什么 外包开发AI软件的关键因素是什么 如何选择AI外包开发语言
  • 基于 STM32 的病房监控系统
  • 数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例
  • 【含开题报告+文档+PPT+源码】基于Spring+Vue的拾光印记婚纱影楼管理系统
  • HTML,API,RestFul API基础
  • 深入理解概率密度函数和概率的关系
  • 【鸿蒙】ArkUI-X跨平台问题集锦
  • Qt使用pri和pro文件进行模块化编程
  • 基于YALMIP和cplex工具箱的微电网最优调度算法matlab仿真
  • html 点击弹出视频弹窗
  • PyCharm结合DeepSeek-R1
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心
  • 专访|西蒙·斯特朗格:以“辞典”的方式讲述二战家族史
  • 人民空军:网上出现的“运-20向外方运送物资”为不实消息
  • 上海“量子城市”先导应用场景落地曹杨社区,提供哪些服务?
  • 华泰柏瑞基金总经理韩勇因工作调整卸任,董事长贾波代为履职
  • 习近平会见古共中央第一书记、古巴国家主席迪亚斯-卡内尔