【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面

【清晰教程】本地部署DeepSeek-r1模型-CSDN博客

目录

安装Docker

配置&检查

Open WebUI

部署Open WebUI


安装Docker

完成本地DeepSeek-r1的部署后【清晰教程】本地部署DeepSeek-r1模型-CSDN博客,通过Docker为本地DeepSeek-r1部署WebUI界面。

访问Docker官网 

Docker: Accelerated Container Application Developmenthttps://www.docker.com/https://www.docker.com/https://www.docker.com/https://www.docker.com/icon-default.png?t=O83Ahttps://www.docker.com/

选择合适的版本进行下载安装

 按照默认情况安装即可

打开命令行,键入docker,如显示以下信息说明Docker安装成功

配置&检查

安装完成后,在“启用或关闭Windows功能中”,启用”适用于Linux的Windows子系统” 、”虚拟机平台”

使用管理员权限打开命令提示符,安装/更新wsl2: 

wsl --set-default-version 2
wsl --update --web-download

安装/更新wsl2后重启电脑,进入Docker

选择跳过登录直接进入Continue without signing in 

左下角Engine running说明一切正常,可以进行图形化界面的部署

Open WebUI

Open WebUI 是一个开源的、功能丰富的自托管 Web 用户界面,专为与大型语言模型(LLMs)交互而设计,与chatgpt界面相似。它支持完全离线运行,兼容多种 LLM 运行器,如 Ollama 和 OpenAI API,并提供直观的聊天界面。其功能强大,支持 Markdown 和 LaTeX、本地 RAG 集成、多语言、多模型对话、网络搜索和图像生成集成,还具备语音和视频通话功能,满足多样化需求。

Open WebUI 的部署方式灵活,支持通过 Docker 或 Kubernetes 快速安装,界面响应式设计适配桌面和移动设备。它为开发者、研究者和企业提供了便捷的 AI 应用部署和访问方式,尤其适合对数据隐私要求较高的场景,能够快速搭建生成式 AI 应用,具有不错的用户体验。

GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)User-friendly AI Interface (Supports Ollama, OpenAI API, ...) - open-webui/open-webuihttps://github.com/open-webui/open-webuihttps://github.com/open-webui/open-webuiicon-default.png?t=O83Ahttps://github.com/open-webui/open-webui

部署Open WebUI

通过docker run命令在本地主机进行快速部署

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
  •  docker run:用于创建并启动一个新的 Docker 容器。
  • -d:表示以后台模式运行容器,容器在后台运行,不会阻塞终端。
  • -p 3000:8080:将容器内的8080 端口映射到宿主机的 3000 端口。这意味着你可以通过访问宿主机的 3000 端口来访问容器内运行的应用(默认是 Open WebUI 的 Web 界面)。
  • --add-host=host.docker.internal:host-gateway:在容器的 /etc/hosts 文件中添加一个条目,将 host.docker.internal 映射到宿主机的网关地址。这通常用于在容器内部访问宿主机上的服务,确保容器能够与宿主机进行通信。
  • -v open-webui:/app/backend/data:将宿主机上的一个名为 open-webui 的卷(如果不存在则会自动创建)挂载到容器内的 /app/backend/data 目录。这用于持久化存储容器内的数据,例如模型文件、配置文件等,即使容器被删除,数据也不会丢失。
  • --name open-webui:为容器指定一个名称,这里是 open-webui。这样可以通过名称来管理容器,例如使用 docker stop open-webui 来停止容器。
  • --restart always:设置容器的重启策略为“始终重启”。这意味着无论容器因何种原因停止,Docker 都会自动重新启动它。
  • ghcr.io/open-webui/open-webui:main:指定要运行的 Docker 镜像。这里使用的是ghcr.io/open-webui/open-webui 镜像的 main 标签,表示从 GitHub Container Registry 获取最新的主分支版本。

部署完成结果如下

部署完成后,在Docker的Containers中可以看到Open WebUI

复制对应的地址

http://localhost:3000/

进入UI界面,开始使用

创建管理账户,设置账号,邮箱,密码

确认更新消息

随即可在浏览器中使用,进一步可通过cpolar进行内网穿透以供大规模公网访问

部署效果

基于本地部署的 DeepSeek 能提供高度的灵活性和定制化能力,支持多语言、可扩展的插件功能,能够根据用户需求优化性能和配置。此外,本地部署无需支付订阅费用,降低了长期使用成本,同时用户完全自主控制模型运行和数据管理,避免外部服务中断风险。适用于创意写作、企业知识管理、教育研究等多种场景,能够高效利用本地资源,实现高性能和低延迟的交互体验。

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

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

相关文章

shell脚本控制——处理信号

Linux利用信号与系统中的进程进行通信。你可以通过对脚本进行编程,使其在收到特定信号时执行某些命令,从而控制shell脚本的操作。 1.重温Linux信号 Linux系统和应用程序可以产生超过30个信号。下表列出了在shell脚本编程时会遇到的最常见的Linux系统信…

2025web寒假作业二

一、整体功能概述 该代码构建了一个简单的后台管理系统界面,主要包含左侧导航栏和右侧内容区域。左侧导航栏有 logo、管理员头像、导航菜单和安全退出按钮;右侧内容区域包括页头、用户信息管理内容(含搜索框和用户数据表格)以及页…

Node.js怎么调用到打包的python文件呢

在 Node.js 中调用打包后的 Python 可执行文件(如 PyInstaller 生成的 .exe 或二进制文件),可以通过以下步骤实现: 一、Python 打包准备 假设已有打包好的 Python 文件 your_script.exe(以 Windows 为例)&…

【开源AI】AI一页一页读PDF

【开源AI】AI一页一页读PDF 可以在这里看 : 让AI 处理 PDF 文件,提取其中的知识点,并生成总结。 只是无法修改,后续若有更新在csdn这里。 【OpenAI】 API 更新: JSON 结构化输出约束机制( JSON Schema) 的一次实战。知识库的JSON Schema形式 每一页都要总结,总结的知识…

如何在 Qt 中添加和使用系统托盘图标

在 Qt 中实现系统托盘图标是一个常见的需求,尤其是在桌面应用程序中。系统托盘图标可以让应用程序在后台运行时仍然具有可见性,同时避免占用过多的桌面空间。本文将详细介绍如何在 Qt 项目中添加托盘图标,并通过资源系统(.qrc 文件…

探索B-树系列

🌈前言🌈 本文将讲解B树系列,包含 B-树,B树,B*树,其中主要讲解B树底层原理,为什么用B树作为外查询的数据结构,以及B-树插入操作并用代码实现;介绍B树、B*树。 &#x1f4…

Python的

& 运算符可用于不同集合类型,它主要用于集合的交集操作 下面分别介绍它在 set(集合)和 frozenset(不可变集合)这两种常见集合类型中的使用 set 类型 set 是 Python 中内置的可变集合类型,使用 & …

深入与浅出-Python爬虫逆向实战

一、什么是爬虫逆向? 爬虫逆向,简单来说,就是通过分析网页的前端和后端行为,找出数据的来源和获取方式,从而实现自动化抓取。很多时候,直接使用requests和BeautifulSoup可能无法获取到目标数据&#xff0c…

使用 POI-TL 和 JFreeChart 动态生成 Word 报告

文章目录 前言一、需求背景二、方案分析三、 POI-TL JFreeChart 实现3.1 Maven 依赖3.3 word模板设置3.2 实现代码 踩坑 前言 在开发过程中,我们经常需要生成包含动态数据和图表的 Word 报告。本文将介绍如何结合 POI-TL 和 JFreeChart,实现动态生成 W…

Java网络编程学习(一)

网络相关概念 网络体系结构 OSI体系结构(七层) OSI(Open Systems Interconnection,开放系统互联)体系结构将整个计算机网络分为七层,从上到下依次为:应用层、表示层、会话层、传输层、网络层…

flutter ListView Item复用源码解析

Flutter 的 ListView 的 Item 复用机制是其高性能列表渲染的核心,底层实现依赖于 Flutter 的渲染管线、Element 树和 Widget 树的协调机制。以下是 ListView 复用机制的源码级解析,结合关键类和核心逻辑进行分析。 1. ListView 的底层结构 ListView 的复…

粒子群优化算法:像鸟群一样找到最优解

前言 在人工智能的浩瀚星空中,粒子群优化算法(PSO)如同一颗熠熠生辉的明星,吸引了无数科研人员的目光。它的名字听起来好像非常高大上,仿佛只有数学天才和算法大师才能理解。但实际上,PSO的原理并没有那么复杂。想象一下,一群聪明的小鸟在天空中自由飞翔,大家互相呼唤…

QT修仙之路2-2 对话框 尚欠火候

警告对话框 相关代码 错误对话框 相关代码 消息对话框 相关代码 询问对话框 相关代码 相关代码 警告对话框 QMessageBox::warning(this,"错误","账号密码不能为空",QMessageBox::Ok);错误对话框 QMessageBox msgBox(QMessageBox::Critical,"错误…

Python 字典(一个简单的字典)

在本章中,你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制,因此我们会演示如何遍 历字典中的数据。另外,你还将学习存储字典的列表、存储列表的字典和存储字典的字典。…

conda 修复 libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found 简便方法

ImportError: /data/home/hum/anaconda3/envs/ipc/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/hum/anaconda3/envs/ipc/lib/python3.11/site-packages/paddle/base/libpaddle.so) 1. 检查版本 strings /data/home/hum/anaconda3/envs/ipc/…

RTD2775QT/RTD2795QT瑞昱显示器芯片方案

RTD2775QT与RTD2795QT:高性能4K显示驱动芯片 RTD2775QT与RTD2795QT是瑞昱半导体公司推出的两款高性能显示驱动芯片,专为满足现代显示设备对高清、高分辨率的需求而设计。这两款芯片不仅支持4K分辨率,还具备丰富的功能和卓越的性能&#xff0…

Linux路径中的‘~‘

本文来自DeepSeek 在Linux中,~ 是用户主目录的简写。具体含义如下: 当前用户的主目录: ~ 代表当前登录用户的主目录。例如,用户 alice 的主目录通常是 /home/alice,~ 就指向 /home/alice。 其他用户的主目录&#xff…

【含开题报告+文档+PPT+源码】学术研究合作与科研项目管理应用的J2EE实施

开题报告 本研究构建了一套集注册登录、信息获取与科研项目管理于一体的综合型学术研究合作平台。系统用户通过注册登录后,能够便捷地接收到最新的系统公告和科研动态新闻,并能进一步点击查看详尽的新闻内容。在科研项目管理方面,系统提供强…

ES6 Proxy 用法总结以及 Object.defineProperty用法区别

Proxy 是 ES6 引入的一种强大的拦截机制,用于定义对象的基本操作(如读取、赋值、删除等)的自定义行为。相较于 Object.defineProperty,Proxy 提供了更灵活、全面的拦截能力。 1. Proxy 语法 const proxy new Proxy(target, hand…

力扣 单词拆分

动态规划,字符串截取,可重复用,集合类。 题目 单词可以重复使用,一个单词可用多次,应该是比较灵活的组合形式了,可以想到用dp,遍历完单词后的状态的返回值。而这里的wordDict给出的是list&…