使用 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 模型集成。这种方法不仅简化了部署过程,还确保了环境的一致性。您现在可以在本地环境中体验强大的语言模型功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16696.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Untiy3d 铰链、弹簧,特殊的物理关节

(一)铰链组件 1.创建一个立方体和角色胶囊 2.给角色胶囊挂在控制脚本和刚体 using System.Collections; using System.Collections.Generic; using UnityEngine;public class plyer : MonoBehaviour {// Start is called once before the first execut…

【NLP 21、实践 ③ 全切分函数切分句子】

当无数个自己离去,我便日益坦然 —— 25.2.9 一、jieba分词器 Jieba 是一款优秀的 Python 中文分词库,它支持多种分词模式,其中全切分方式会将句子中所有可能的词语都扫描出来。 1.原理 全切分方式会找出句子中所有可能的词语组合。对于一…

团结引擎 OpenHarmony 平台全面支持 UAAL,实现引擎能力嵌入原生应用

团结引擎1.4版本已于近日正式发布!在这一版本中,OpenHarmony 平台迎来了一个具有里程碑意义的更新:全面支持 Used as a Library(UAAL)。UAAL 这一技术方案,具有将引擎嵌入原生应用的独特能力,其…

自己部署DeepSeek 助力 Vue 开发:打造丝滑的标签页(Tabs)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 自己…

DeepSeek渣机部署编程用的模型,边缘设备部署模型

DeepSeek渣机部署编程用的模型,边缘设备部署模型 文章目录 DeepSeek渣机部署编程用的模型,边缘设备部署模型前言一、python代码二、构建一个简单的前端来接入接口2.读入数据 总结 前言 也许大家伙都想完成一些部署DeepSeek的东西,不过部署并…

VS2019打开《喜缺全书算法册》附带代码的方法兼述单元测试

下载地址(大量的题目和测试用例) 下载:地址一,几乎实时更新 GitCode下载。 下载地址二,不定期更新csdn打包下载 如果这两个链接打不开,可能是这两个资源处于审核状态,快则几分钟,慢则2天。 可以加本文末的&#xff31…

急停信号的含义

前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是确认设备按钮的急停…

小白学网络安全难吗?需要具备哪些条件?

作为一名零基础小白,想要转行IT学习一门新技术,且上手难度低、就业前景好、薪资待遇高、入行门槛低,网络安全是最值得的选择,掌握它之后你可以获得一份收入不错的工作。那么零基础学网络安全好学吗?以下是具体内容介绍。 首先&am…

IEEE期刊Word导出PDF注意事项

在系统上提交论文时候一般要求PDF文档,但是word直接转PDF可能存在一些问题: 部分图片不清晰。字体未嵌入PDF。间距发生了变化。字体发生了变化。一张图片显示不完全。 下面介绍word转PDF最稳妥的技巧以及如何实现全部字体的嵌入。 1. 操作流程 ① 另…

CEF132 编译指南 MacOS 篇 - depot_tools 安装与配置 (四)

1. 引言 在 CEF132(Chromium Embedded Framework)的编译过程中,depot_tools 扮演着举足轻重的角色。这套由 Chromium 项目精心打造的脚本和工具集,专门用于获取、管理和更新 Chromium 及其相关项目(包括 CEF&#xff…

【C++高并发服务器WebServer】-16:UDP简单实现

本文目录 一、UDP通信流程二、UDP API2.1 sendto()2.2 recvfrom() 一、UDP通信流程 UDP通信的流程比较简单&#xff0c;下面这张图可以总结。 二、UDP API 2.1 sendto() UDP相关头文件如下。 #include <sys/types.h> #include <sys/socket.h>ssize_t sendto(…

k8s管理工具之lens

什么是lens Lens 是当前市场上最强大的K8S IDE。它是一个独立的单机应用&#xff0c;可以同时运行在macOS、Windows和Linux上。 作为K8S IDE&#xff0c;该有的它基本都有了&#xff01; 集群管理 导入已有集群 首先&#xff0c;你需要在 Lens 中添加你的 Kubernetes 集群。点…

SynthDetoxM - 现代LLM是少样本的并行去毒化数据标注器

SynthDetoxM: Modern LLMs are Few-Shot Parallel Detoxification Data Annotators https://arxiv.org/html/2502.06394v1 1. 主要内容 这篇论文提出了一个 用于生成多语言平行去毒化数据的管道&#xff0c;并介绍了SynthDetoxM&#xff0c;一个包含16,000个高质量去毒化句子对…

云服务器流量包用尽(中病毒)

1. 情况 腾讯云提示我账号欠费了&#xff0c;服务器存在恶意文件。。。 一看&#xff0c;流量包用尽超额了&#xff0c;CPU直接爆了。 用iftop监测一下网络流量。可以看到向多个IP发送了大量的流量。 看来是中病毒了&#xff0c;被当成 “肉鸡”&#xff0c;纳入“僵尸网络”…

RK3588视觉控制器与AI 算法:开启工业视觉检测新境界

在实际应用中&#xff0c;工业相机拍摄产品的图像&#xff0c;RK3588 迅速接收并进行预处理。AI 算法随即对图像进行深入分析&#xff0c;提取特征并与预设的标准进行对比&#xff0c;从而准确判断是否存在缺陷。 例如&#xff0c;在电子元件生产线上&#xff0c;RK3588 和 AI…

android的ViewModel这个类就是业务逻辑层吗

android的ViewModel这个类就是业务逻辑层吗&#xff1f; 相似&#xff1a;业务逻辑代码应该放在ViewModel这个类吗&#xff1f; 嗯&#xff0c;我现在在学习Android架构组件&#xff0c;特别是ViewModel。用户问ViewModel是否就是业务逻辑层&#xff0c;我需要仔细思考这个问题…

Gui-Guider1.8.1 数字时钟控件找不到定义,无法编译

我们在Gui-Guider中使用的一些控件&#xff0c;生成后会发现在LVGL源码中找不到该控件的定义&#xff0c;这时因为Gui-Guider中的一些控件是其自己编写的而不是LVGL提供的&#xff0c;那么我们该如何应用呢&#xff1f;这里拿Digital Clock数字时钟控件举例&#xff1a; 这里我…

使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)安装适配 Java 8 的 Maven

好的&#xff0c;这是使用 SDKMAN! 安装适配 Java 8 的 Maven 的步骤&#xff1a; 前提条件: 安装 SDKMAN!: 如果你的系统上没有安装 SDKMAN!&#xff0c;请按照以下说明进行安装: curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-i…

【Stable Diffusion模型测试】测试ControlNet,没有线稿图?

相信很多小伙伴跟我一样&#xff0c;在测试Stable Diffusion的Lora模型时&#xff0c;ControlNet没有可输入的线稿图&#xff0c;大家的第一反应就是百度搜&#xff0c;但是能从互联网上搜到的高质量线稿图&#xff0c;要么收费&#xff0c;要么质量很差。 现在都什么年代了&a…

oracle表分区--范围分区

文章目录 oracle表分区分区的原因分区的优势oracle表分区的作用oracle表分区类型一、范围分区二、 创建分区表和使用&#xff1a;1、按照数值范围划分2、按照时间范围3、MAXVALUE2. 向现有表添加新的分区3、 分区维护和重新组织&#xff08;合并/删除&#xff09; oracle表分区…