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

windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI

本文将手把手教您使用Ollama+Docker+OpenWebUI三件套在本地部署DeepSeek-R1大语言模型,实现私有化AI服务搭建。

一、环境准备

1.1 硬件要求

CPU:推荐Intel i7及以上(需支持AVX2指令集)

内存:最低16GB,推荐32GB+ (其实内存8GB也可以)

显卡:非必需,但使用NVIDIA GPU可加速(需CUDA 11.8+)

存储:至少20GB可用空间

1.2 系统要求

操作系统:Linux(Ubuntu 22.04推荐)/ Windows WSL2 / macOS 12+

Docker版本:24.0+

Python版本:3.10+

二、安装部署流程

2.1 下载安装ollama https://ollama.com/

Ollama 是一个用于运行和管理 AI 模型的开源平台,特别是在本地环境中使用 AI 模型。它旨在通过简化本地部署和管理 AI 模型的过程,使开发者能够更容易地在自己的机器上运行各种大型语言模型(LLMs)。
在这里插入图片描述

在这里插入图片描述

2.2检查ollama是否安装成功

cmd命令,然后输入ollama如果出现以下内容则表示ollama安装成功

ollama

在这里插入图片描述

2.3 根据自己的电脑情况选择模型,这里为了快速演示选择了一个最小的模型1.5b的,点击右边复制命令。

这里注意,如果下载速度变慢了可以ctrl+c停止后重新输入命令后回车,速度会变快

ollama run deepseek-r1:1.5b

在这里插入图片描述
在这里插入图片描述

2.4安装完成效果图

使用命令:到这里基本的就算完成了就可以使用了

ollama run deepseek-r1:1.5b

在这里插入图片描述
在这里插入图片描述

2.5现在来安装docker,这里我们后面会使用docker来安装openwebui

进入docker官网 https://www.docker.com/ 进行下载。这里根据自己的系统下载安装。
在这里插入图片描述
在这里插入图片描述
安装成功后输入命令,如果出现版本信息表示安装成功
docker --version
在这里插入图片描述

2.6拉取OpenWebUI镜像

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

2.7 拉取OpenWebUI可能遇到的一些问题的排查方式

  1. 检查 Docker 镜像
    确保你已经成功拉取了 open-webui 镜像。你可以通过以下命令检查镜像是否存在:
docker images

如果你看到 ghcr.io/open-webui/open-webui:main 镜像列表中,那么说明镜像已经成功拉取
2. 查看日志(可选)
如果容器运行有问题,可以通过以下命令查看容器的日志:

docker logs open-webui
  1. 停止和删除容器
    停止容器
docker stop open-webui

删除容器

docker rm open-webui

确认容器是否运行
首先确认容器已经成功启动。你可以使用以下命令查看容器的状态:

docker ps

2.8 最终效果图

如果关机后下次开机还想使用的话,需要打开docker desktop 即可。然后访问上次配置的地址。这里我配置的是localhost:3000即可通过openwebui来进行使用了。
在这里插入图片描述

数据持久化

检查当前 OpenWebUI 的部署方式

首先,确认你是如何部署 OpenWebUI 的。如果你是通过命令行使用 Docker 启动的 OpenWebUI,那么它很可能并没有配置持久化存储(例如数据挂载到本地目录)。

停止当前 OpenWebUI 容器

如果你已经通过 Docker 启动了 OpenWebUI,首先停止当前正在运行的容器:

docker ps  # 查看正在运行的容器
docker stop <容器ID或容器名称>  # 停止当前的 OpenWebUI 容器
docker rm <容器ID或容器名称>  # 删除容器

创建一个 docker-compose.yml 文件 。这里我是放在D盘的

创建一个专门的目录用于管理 OpenWebUI 容器。
假设你在用户目录下创建一个新目录:openweui
然后在该目录下创建 docker-compose.yml 文件:

配置 docker-compose.yml 文件

version: '3'
services:openwebui:image: ghcr.io/open-webui/open-webui:main  # 使用最新的 OpenWebUI 镜像container_name: openwebuiports:- "3000:3000"  # 将容器的3000端口映射到本地的3000端口environment:- PORT=3000  # 配置 OpenWebUI 启动时监听的端口volumes:- ./data:/app/data  # 将本地的 ./data 文件夹挂载到容器的 /app/data 文件夹restart: always  # 容器异常退出时自动重启

这将 OpenWebUI 配置为通过 localhost:3000 进行访问。
同时,容器内部的 /app/data 目录会挂载到本地的 ./data 目录,确保数据持久化存储。

启动 OpenWebUI 容器

在创建并保存好 docker-compose.yml 文件后,运行以下命令来启动 OpenWebUI 容器:

docker-compose up -d

访问 OpenWebUI

容器启动后,你可以通过浏览器访问 http://localhost:3000 来查看 OpenWebUI 是否正常运行。

验证数据是否持久化

在容器运行一段时间后,尝试在 OpenWebUI 中进行一些操作(例如上传文件或保存数据),然后停止容器并重启。检查本地的 ./data 目录,确保数据文件保存到本地磁盘。

docker-compose down  # 停止并删除容器
docker-compose up -d  # 重新启动容器

重新访问 localhost:3000,确认数据是否仍然存在。

总结

通过 docker-compose 配置 OpenWebUI,确保数据存储在本地。
使用 volumes 将容器内的 /app/data 目录挂载到本地的 ./data 目录,以保证数据持久化。
通过 localhost:3000 访问 OpenWebUI,并在容器重启后验证数据是否丢失。
这样,你就能够在本地通过 Docker 部署 OpenWebUI 并保持数据的持久化了。

在这里插入图片描述

相关文章:

windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI

本文将手把手教您使用OllamaDockerOpenWebUI三件套在本地部署DeepSeek-R1大语言模型&#xff0c;实现私有化AI服务搭建。 一、环境准备 1.1 硬件要求 CPU&#xff1a;推荐Intel i7及以上&#xff08;需支持AVX2指令集&#xff09; 内存&#xff1a;最低16GB&#xff0c;推荐…...

当C#邂逅Deepseek, 或.net界面集成deepseek

最近&#xff0c;我开发了一个C#界面&#xff0c;并集成了Deepseek的接口功能&#xff0c;实现了本地化部署和流模式读取。 过程充满了挑战和乐趣&#xff0c;也让我深刻体会到Deepseek的强大之处。今天&#xff0c;我想和大家分享这段经历&#xff0c;希望能激发你对Deepseek的…...

Cursor实战:Web版背单词应用开发演示

Cursor实战&#xff1a;Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前&#xff0c;我们先回顾下Java中的Lambda表达式&#xff0c;Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能&#xff0c;它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…...

V4L2驱动之UVC

以下是关于V4L2摄像头驱动框架与UVC协议的关联分析&#xff0c;从内核驱动到用户空间的完整视角&#xff1a; 1. V4L2驱动框架核心架构 关键组件&#xff1a; 核心层 (V4L2 Core) v4l2_device&#xff1a;设备的总入口&#xff0c;管理所有子组件video_device&#xff1a;对应…...

numpy(01 入门)

前面内容&#xff1a;pandas(01 入门) 目录 一、numpy 简介 1.1 Numpy 应用场景 1.2 Numpy 优点 1.3 Numpy 缺点 1.4 相关链接 二、Numpy环境安装配置 2.1 Python自带包 2.2 Numpy 安装 三、NumPy.Ndarray 3.1 ndarray特点&#xff1a; 3.2 ndarray()参数&…...

Chatgpt论文润色指令整理

1. 内容润色 这个来自文章《three ways ChatGPT helps me in my academic writing》。 在输入你要润色的内容前&#xff0c;先输入以下内容来驯化chatgpt的身份&#xff1a; I’m writing a paper on [话题] for a leading [学科/杂志] academic journal. What I tried to s…...

vscode复制到下一行

linux中默认快捷键是ctrl shift alt down/up 但是在vscode中无法使用&#xff0c;应该是被其他的东西绑定了&#xff0c;经测试&#xff0c;可以使用windows下的快捷键shift alt down/up { “key”: “shiftaltdown”, “command”: “editor.action.copyLinesDownAction”…...

Python天梯赛刷题-五分题(上)

蓝桥杯题刷的好累&#xff0c;感觉零帧起手、以题带学真的会很吃力&#xff0c;打算重新刷一点天梯的题目巩固一下&#xff0c;我本人在算法非常不精通的情况下&#xff0c;自认为天梯的L1的题是会相对容易一些的&#xff0c;可能有一些没有脑子光靠力气的“硬推”hhhh。 从头…...

【优先级队列】任务分配

任务分配问题&#xff0c;有n个任务&#xff0c;每个任务有个达到时间。将这些任务分配给m个处理器&#xff0c;进行处理。每个处理器的处理时间不一样。处理器的任务列表有最大任务数限制。 分配任务的策略是&#xff1a;当前待分配的任务的处理时刻最小。如果处理时刻相同&am…...

设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。

前言 本文涉及到适配模式的基本用法&#xff0c;以及在Spring AOP中如何使用&#xff0c;首先需要了解适配模式的工作原理&#xff0c;然后结合Spring AOP的具体实现来详细详细解析源码。 首先&#xff0c;适配模式&#xff0c;也就是Adapter Pattern&#xff0c;属于结构型设计…...

Python 库自制 Cross-correlation 算法

Python 库自制 Cross-correlation 算法 引言正文引言 虽然 Scipy 库中包含了成熟的 Cross-correlation 算法,但是有些时候我们无法使用现成的库进行数据处理。这里介绍如何使用 Python 基础函数自制 Cross-correlation 算法。后续读者可以将该算法转换为其他各类语言。 正文…...

C++(23):为类成员函数增加this参数

C23允许指定类成员函数的第一个参数的this类型&#xff0c;从而更加便于函数重载&#xff1a; #include <iostream> using namespace std;class A{ public:void func(this A&){cout<<"in func1"<<endl;}void func(this const A&){cout<…...

javaSE学习笔记23-线程(thread)-总结

创建线程的三种方式 练习代码 package com.kuang.thread;import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;//回顾总结线程的创建 public class ThreadNew {public static void main(String[…...

【DeepSeek服务器部署全攻略】Linux服务器部署DeepSeek R1模型、实现API调用、搭建Web页面以及专属知识库

DeepSeek R1模型的Linux服务器搭建、API访问及Web页面搭建 1&#xff0c;引言2&#xff0c;安装Ollama工具3&#xff0c;下载DeepSeek R1 模型4&#xff0c;DeepSeek命令行对话5&#xff0c;DeepSeek API接口调用6&#xff0c;DeepSeek结合Web-ui实现图形化界面远程访问6.1&…...

【JAVA工程师从0开始学AI】,第四步:闭包与高阶函数——用Python的“魔法函数“重构Java思维

副标题&#xff1a;当严谨的Java遇上"七十二变"的Python函数式编程 历经变量战争、语法迷雾、函数对决&#xff0c;此刻我们将踏入Python最迷人的领域——函数式编程。当Java工程师还在用接口和匿名类实现回调时&#xff0c;Python的闭包已化身"智能机器人"…...

算法日记20:SC72最小生成树(prim朴素算法)

一、题目&#xff1a; 二、题解 2.1&#xff1a;朴素prim的步骤解析 O ( n 2 ) O(n^2) O(n2)(n<1e3) 0、假设&#xff0c;我们现在有这样一个有权图 1、我们随便找一个点&#xff0c;作为起点开始构建最小生成树(一般是1号)&#xff0c;并且存入intree[]状态数组中&#xf…...

玩转SpringCloud Stream

背景及痛点 现如今消息中间件(MQ)在互联网项目中被广泛的应用&#xff0c;特别是大数据行业应用的特别的多&#xff0c;现在市面上也流行这多个消息中间件框架&#xff0c;比如ActiveMQ、RabbitMQ、RocketMQ、Kafka等&#xff0c;这些消息中间件各有各的优劣&#xff0c;但是想…...

嵌入式经常用到串口,如何判断串口数据接收完成?

说起通信&#xff0c;首先想到的肯定是串口&#xff0c;日常中232和485的使用比比皆是&#xff0c;数据的发送、接收是串口通信最基础的内容。这篇文章主要讨论串口接收数据的断帧操作。 空闲中断断帧 一些mcu&#xff08;如&#xff1a;stm32f103&#xff09;在出厂时就已经在…...

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动&#xff1a;从0开始启动App热启动&#xff1a;App已经在内存中&#xff0c;但是后台还挂着&#xff0c;再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段&#xff1a; dyld&#xff1a…...

结构健康监测仿真-主题026-结构健康监测中的数字孪生技术

结构健康监测仿真-主题026-结构健康监测中的数字孪生技术 1. 数字孪生技术概述 1.1 数字孪生的基本概念 数字孪生&#xff08;Digital Twin&#xff09;是指在数字世界中创建一个与物理实体完全对应、实时更新的虚拟模型。它通过传感器收集物理实体的数据&#xff0c;利用仿真技…...

当我停止加班,团队的效率反而提升了50%:一位测试负责人的深度反思

效率的陷阱在软件测试行业&#xff0c;“加班”似乎是与“敬业”、“责任心”划等号的默认文化。我们习惯了在发布前夕灯火通明的办公室&#xff0c;习惯了用测试用例的堆积和缺陷数量的增长来证明团队的价值&#xff0c;更习惯了将“996”或“大小周”视为应对项目压力的唯一解…...

从导弹防御到深空探测:STK EOIR传感器建模,在Win10系统下的多场景应用入门

从导弹防御到深空探测&#xff1a;STK EOIR传感器建模的多场景实战指南 当我们需要模拟太空中的光学现象时&#xff0c;STK EOIR模块就像一把瑞士军刀——它既能处理导弹防御中的红外追踪&#xff0c;也能规划月球车的可见光成像路径。这个工具的强大之处在于&#xff0c;用同一…...

多表关联大平层转JSON树形结构

比如把这种平层数据转化为下面这种树形结构树 [{"id": 2,"parentId": null,"name": "有声书","type": "category","children": [{"id": 1,"parentId": 2,"name": "…...

extract-video-ppt:一站式智能视频内容提取的革命性解决方案

extract-video-ppt&#xff1a;一站式智能视频内容提取的革命性解决方案 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习与知识传播的时代&#xff0c;视频已成为信息传…...

零基础入门网安|6_个月从小白到拿offer,怎么学的?

零基础入门网安&#xff5c;6 个月从小白到拿offer&#xff0c;怎么学的&#xff1f; 有粉丝说刷到 “网安工程师月薪 30K” 时心潮澎湃&#xff0c;点开教程却直接懵了 ——“TCP/IP 协议”“Linux 命令”“漏洞挖掘” 堆在一起&#xff0c;不知道从哪下手。跟风装了 Kali 系统…...

【202511】Cosmos-Predict2.5-02-模型篇:用于PhysicalAI的基于视频基础模型的世界模拟【网络架构:DiT】【视觉Tokenizer:WAN2.1 VAE】【16fps】

《World Simulation with Video Foundation Models for Physical AI》 Method 3. 方法 In this section, we first discuss our flow-matching formulation and then present the network architecture. 在本节中,我们首先讨论我们的 flow-matching 表述,然后介绍网络架构。…...

ARM CoreSight ETM11调试技术详解与应用实践

1. ARM CoreSight ETM11技术架构解析作为ARM11处理器家族的核心调试组件&#xff0c;CoreSight ETM11&#xff08;Embedded Trace Macrocell&#xff09;采用三级流水线跟踪架构&#xff0c;包含指令采集、数据标记和协议封装三个主要阶段。其创新性地通过硬件级指令插桩技术&a…...

5分钟掌握城通网盘直连解析工具:告别龟速下载的终极指南

5分钟掌握城通网盘直连解析工具&#xff1a;告别龟速下载的终极指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾经面对城通网盘的下载页面&#xff0c;看着那几十KB的下载速度而陷入绝望&a…...

ESP-ADF避坑指南:从零搭建MAX98357播放器,搞定自定义Touch控制与DAC音量调节

ESP-ADF实战&#xff1a;MAX98357音频系统开发全流程与深度优化 硬件选型与系统架构设计 在嵌入式音频系统开发中&#xff0c;ESP32MAX98357的组合因其高性价比和简洁的硬件设计而备受开发者青睐。MAX98357作为一款集成I2S接口的D类放大器&#xff0c;相比传统音频方案具有明显…...