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 并保持数据的持久化了。

在这里插入图片描述

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

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

相关文章

Windows Server 任务计划

背景&#xff1a;QMT服务只能在windows服务器上面运行 直接在控制面板里面搜索"任务计划"点进去 需要注意的是&#xff1a; 1.创建任务计划选择”不管用户是否登录都运行“&#xff0c;是否需要最高权限执行看你的需求 2.操作程序或脚本&#xff0c;选择bat脚本就…

makefile+LSF

LSF LSF&#xff08;Load Sharing Facility&#xff09;是一种常用的集群作业调度系统&#xff0c;bsub 命令用于提交作业到 LSF 集群&#xff0c;而若要关闭&#xff08;终止&#xff09;一个正在运行的作业&#xff0c;需要使用 bkill 命令&#xff0c;下面为你详细介绍相关…

spring boot知识点3

1.spring boot能否使用xml配置 可以&#xff0c;但是很繁琐&#xff0c;现在都建议走JavaConfig 2.spring boot的核心配置文件 application.properties application.yml 3.bootstrap.properties和application.properties的区别 b&#xff1a;用于远程配置 a&#xff1a;…

人工智能学习环境配置

文章目录 Python、CUDA、cuDNN、PyTorch 和 Anaconda 的介绍PythonCUDAcuDNNPyTorchAnaconda联系 安装n卡驱动更新安装 AnacondaAnaconda配置镜像源CUDA安装Cudnn安装Anaconda初始化创建虚拟环境安装 PyTorch验证安装 可能的错误SSL错误 Python、CUDA、cuDNN、PyTorch 和 Anaco…

【C语言】C语言 食堂自动化管理系统(源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言】C语言 食堂自动化管理系统&#xff08;源…

DeepSeek是什么?两种模型的对比?

最近DeepSeek的风也是很大&#xff0c;它也是很火&#xff0c;那么DeepSeek是什么呢&#xff1f; 什么是DeepSeek&#xff1f; DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应用。DeepSeek-R1是其开源的推理模型&a…

【架构】分层架构 (Layered Architecture)

一、分层模型基础理论 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0365cf0bfa754229bdedca6b472bffc7.png 1. 核心定义 分层架构(Layered Architecture)模型是一种常见的软件设计架构,它将软件系统按照功能划分为不同的层次,每个层次都有特定的职责和功能…

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真 文章目录 前言一、二维MUSIC算法原理二、二维MUSIC算法MATLAB仿真三、MATLAB源代码总结 前言 \;\;\;\;\; 在波达角估计算法中&#xff0c;MUSIC 算法与ESPRIT算法属于特征结构子空间算法&#xff0c;是波达角估计算法中的基石。在前面…

组学数据分析实操系列 |(四) 富集气泡图的绘制

前言:在上一篇中&#xff0c;我们介绍了利用Metascape零代码实现富集分析&#xff0c;但是Metascape的富集分析结果是以柱状图的形式展示的。文章中更常使用的富集结果可视化方式是气泡图。气泡图可以通过气泡的坐标、形状、颜色、大小等来展示更加丰富的富集分析结果&#xff…

实现一个专注应用-后端开发(一)-搭建

搭建后端服务 搭建服务拆分下用户服务 增加公共库通用模块 运行一下接入数据库安装Prisma增加prisma库 redis增加redis服务 搭建服务 使用nestjs来做 这里是nestjs的网站Nestjs 安装 nest npm i -g nestjs/cli创建一个项目 并在开发工具打开 nest new todonest new xx 是新…

C++17并行化加速STL算法——std::execution

C17 并行化STL算法 文章目录 C17 并行化STL算法概念环境准备工具类 并行算法 - 使用并行算法 - 执行策略总览选择标准详细介绍顺序执行 seq并行化顺序执行 par并行化乱序执行 par_unseq 并行算法 - 异常处理可以不使用并行算法并行算法 - 限制并行算法有哪些原有算法17引入新算…

Deepseek 怼CHATGPT实况

提示词&#xff1a; 用犀利的语言批评ChatGPT 深度思考&#xff08;R1) 嗯&#xff0c;用户让我用犀利的语言批评ChatGPT。首先&#xff0c;我需要理解他们的动机。可能他们遇到了ChatGPT的某些问题&#xff0c;比如回答不准确或者缺乏深度&#xff0c;所以想表达不满。也有…

always和assign语法区别

always语句可以带时钟, 也可以不带时钟。 一,assign和always区别 assign 语句使用时不能带时钟。 assign a=1; assign b=2; 在always不带时钟时,逻辑功能和assign完全一致,都是只产生组合逻辑。比较简单的组合逻辑推荐使用assign语句,比较复杂的组合逻辑推荐使用 al…

解析跨域:原理、解决方案与实践指南

解析跨域&#xff1a;原理、解决方案与实践指南 &#x1f310; 在现代Web开发中&#xff0c;跨域问题是一个常见且重要的挑战。随着互联网应用的日益复杂&#xff0c;前端与后端之间的交互越来越频繁&#xff0c;跨域请求的需求也随之增加。 一、跨域问题的本质与产生条件 &a…

鸿蒙开发:熟知@BuilderParam装饰器

前言 本文代码案例基于Api13。 在实际的开发中&#xff0c;我们经常会遇到自定义组件的情况&#xff0c;比如通用的列表组件&#xff0c;选项卡组件等等&#xff0c;由于使用方的样式不一&#xff0c;子组件是动态变化的&#xff0c;针对这一情况&#xff0c;就不得不让使用方把…

MSI微星电脑冲锋坦克Pro Vector GP76 12UGS(MS-17K4)原厂Win11系统恢复镜像,含还原功能,预装OEM系统下载

适用机型&#xff1a;【MS-17K4】 链接&#xff1a;https://pan.baidu.com/s/1P8ZgXc6S_J9DI8RToRd0dQ?pwdqrf1 提取码&#xff1a;qrf1 微星笔记本原装出厂WINDOWS11系统自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志、Office办公软件、MSI Center控制中心等预装…

【面试题】杭州士腾科技-面试题汇总

历史小剧场 历史是一个好客的主人&#xff0c;却从不容许客人取代它的位置。历史也从来就不是一个人或事几个人可以支配创造的。所谓时势造英雄&#xff0c;实乃至理名言。 真正支配历史的人&#xff0c;不是朱元璋&#xff0c;是稻田里辛勤劳作的老农&#xff0c;是官道上来往…

Go入门之map

map类型是引用类型&#xff0c;必须初始化才能使用&#xff0c;为key-value形式 var userinfo make(map[string]string)userinfo["username"] "zhangsan"var user map[string]string{"username": "张三","age": &qu…

切换镜像源(npm)

常见的npm镜像源 官方源 URL: https://registry.npmjs.org 淘宝镜像源&#xff08;npmmirror&#xff09; URL: https://registry.npmmirror.com 其他常用镜像源 URL: https://registry.cnpmjs.org (CNPM) 这里是引用 切换npm镜像源 切换到官方源 npm config set registry http…

【大模型】DeepSeek 高级提示词技巧使用详解

目录 一、前言 二、DeepSeek 通用提示词技巧 2.1 DeepSeek 通用提示词技巧总结 三、DeepSeek 进阶使用技巧 3.1 DeepSeek一个特定角色的人设 3.1.1 为DeepSeek设置角色操作案例一 3.1.2 为DeepSeek设置角色操作案例二 3.2 DeepSeek开放人设升级 3.2.1 特殊的人设&#…