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

打印 上一主题 下一主题

主题 683|帖子 683|积分 2049

使用 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模型
  1. ollama run deepseek-r1
复制代码
1.5b模型
  1. ollama run deepseek-r1
  2. :1.5b
复制代码
14b模型
  1. ollama run deepseek-r1
  2. :14b
复制代码
r1背面的数字就是对应不同的参数模型,其他模型可拜见官网代码。

使用如下下令查察模型是否已经存在:
  1. 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,使用如下下令:
  1. 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,使用如下下令:
  1. 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,并增加康健查抄:
  1. 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 秒后才开始查抄避免容器刚启动时误判

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表