**前言:**本文为Windows系统下,本地部署DeepSeek的全部流程,包括中间遇到问题的具体解决方案。
目录
[五、部署 Open WebUI](#五、部署 Open WebUI)
一、核心组件介绍
本地部署Deepseek主要涉及如下四个组件:
1、Ollama:
一个用于在本地运行大型语言模型(LLM)的开源框架。它允许用户下载、管理和运行各种AI模型,如DeepSeek、Llama等。Ollama提供了一个简单的命令行界面和API(默认端口11434),使得模型可以本地部署并供其他应用程序调用。
2、DeepSeek模型:
通过Ollama下载的模型,模型文件存储在本地,由Ollama管理。
3、Docker:
一个容器化平台,允许将应用程序及其依赖打包成容器,实现快速部署和隔离运行。
4、Open WebUI:
一个为Ollama模型提供Web图形界面的开源项目。允许用户通过浏览器与模型进行交互,支持聊天、文档上传、知识库检索等功能。
总结:
Ollama负责加载和管理DeepSeek模型。Open WebUI负责提供一个友好的Web界面。当你在Web界面中输入问题时,Open WebUI会通过Ollama的API(http://host.docker.internal:11434)将请求发送给Ollama,Ollama调用模型生成回答,然后返回给Open WebUI显示。
注:Ollama本身可以提供对话问答,但是无法上传文件附件分析文件内容,因此使用Open WebUI作为Web界面,如果上传文档,Open WebUI可以使用嵌入模型进行向量化处理。
二、部署架构介绍
1、架构A:Ollama在宿主机,Open WebUI在Docker容器
- 描述:Ollama直接安装在Windows系统上,作为本地服务运行。Open WebUI通过Docker容器运行,两者通过宿主机网络通信。
- 优点:GPU支持好,性能更佳,模型管理方便,适合已有Ollama和模型的用户。
- 缺点:需要分别安装和启动两个服务。
2、架构B:Ollama和Open WebUI都在Docker容器中
- 描述:使用Docker同时运行Ollama容器和Open WebUI容器,两者通过Docker内部网络通信。
- 优点:环境隔离,一键启动,便于迁移和版本管理。
- 缺点:GPU支持有限(Windows下),需配置容器间网络。
注:由于本人在部署时,先安装的Ollama,并在其中下载好了DeepSeek模型,后续测试使用时发现Ollama只可以实现纯文本交互,需要为其安装额外的图形化界面,才可以实现文件上传、解析和对话管理等功能。所以在部署上使用的架构A方案,后续迁移Ollama到Docker时,会出新的文章介绍~
三、安装Ollama+下载DeepSeek模型
1、官网下载Ollama

2、Ollama安装
Ollama有两种安装方式:命令行安装、鼠标一键安装(和日常安装软件步骤一致),这里推荐用命令行安装,因为命令行安装可以修改安装目录(默认会装在c盘哦~)
(1)管理员身份运行cmd,我的安装包所在目录为:D:\package,先进入到Ollama安装包所在目录,执行如下命令:
OllamaSetup.exe /DIR="D:\softwarePath\Ollama"
其中"D:\softwarePath\Ollama"就是你想要安装的路径

回车后,按照正常软件下载逻辑,一路点击就可以了
(2)检查Ollama用户环境变量
默认直接有,如果前面不小心安装在c盘,可以剪切至其他盘,同时修改环境变量为新的目录

(3)修改模型安装位置
在用户环境变量中,点击"新建"
变量名:OLLAMA_MODELS
变量值:D:\softwarePath\Ollama\Models

在Ollama软件中设置
点击"Settings",设置"Model location"


注:修改完环境变量要重启电脑,不重启的话,环境变量可能不生效
(4)Ollama验证
可以通过cmd或者powershell输入"ollama -v"验证Ollama安装成功

3、下载DeepSeek
在Ollama上搜索DeepSeek,查找适合自己的DeepSeek版本

用管理员打开powershell,通过命令行下载deepseek(注意需要先启动Ollama,可以双击客户端,也可以命令行启动),这里我下载的版本是:deepseek-v2:16b
ollama pull deepseek-v2:16b
Ollama常用命令有
1.拉取模型
ollama pull deepseek-v2:16b
2.显示模型列表
ollama list
3.启动模型
ollama run deepseek-v2:16b
4.关闭/切换模型
在命令行中,用完一个后输入 /bye 退出。
ollama run deepseek-v2:16b
/bye
下载完成后,可以简单验证一下:

四、Docker安装
1、Docker下载
官网下载:Docker: Accelerated Container Application Development
选择"AMD64"版本

2、一键安装

这里注意,点击"close and restart"后电脑会重启,记得提前保存打开的文档
重启后电脑显示:

3、核心数据迁移
Docker默认安装在C盘(程序本身和所有核心数据),可以将所有核心数据迁移至D盘(程序本体很小,可以保留在C盘;但是核心数据巨大且持续增长)

点击 "Continue without signing in" 可以在离线状态下使用Docker的所有本地功能


进入Docker Desktop主界面后,点击右上角的齿轮图标(Settings)
在左侧菜单栏选择 "Resources" -> "Advanced"
找到 "Disk image location" 一项
点击右侧的 "Browse" 按钮,选择一个自定义文件夹,例如D:\...\Docker

点击右下角的 "Apply" 按钮

迁移出现报错

报错表明:Docker Desktop 依赖的 Windows Subsystem for Linux (WSL 2) 子系统出现了问题。需要先修复WSL,然后才能成功迁移数据目录。
4、WSL修复
在 Windows 搜索栏输入 "PowerShell",选择 "以管理员身份运行"

依次输入三条命令:
# 1. 启用"适用于 Linux 的 Windows 子系统"功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 2. 启用"虚拟机平台"功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 3. 将 WSL 2 设置为默认版本
wsl --set-default-version 2

执行第三句时提示:WSL(Windows 子系统 for Linux)版本太旧了,在将其设为默认版本(WSL 2)之前,必须先更新其核心组件。
只需要执行更新即可:在当前提示的窗口中直接按任意键,系统会自动下载并安装最新WSL组件。这个过程需要联网。(如果错过了提示,只需要重新执行一遍第三条命令后,按任意键完成更新即可)

但是下载特别慢,因为默认下载源在国外。可以下载离线包:
Release 2.6.3 · microsoft/WSL · GitHub

下载wsl.2.6.3.0.x64.msi文件
下载后,双击运行安装,安装后重启电脑
重启后,打开 PowerShell 或 CMD,运行命令:
wsl --set-default-version 2
显示成功:

修复后,重新执行迁移

五、部署 Open WebUI
以 管理员身份 打开 PowerShell,然后执行以下这条完整的命令(open_webui_data数据存储位置可以改为自己的):
docker run -d `
-p 3000:8080 `
--add-host=host.docker.internal:host-gateway `
-v D:/softwarePath/open_webui_data:/app/backend/data `
--name open-webui `
--restart always `
ghcr.io/open-webui/open-webui:main

下载后通过 docker ps 查看容器运行状态
docker ps

如图所示的输出表明Open webUI已成功安装并且正常运行
但通过 docker logs open-webui 命令查看日志时,显示Open WebUI 尝试从 HuggingFace 下载一个嵌入模型(sentence-transformers/all-MiniLM-L6-v2)时,由于网络原因,无法下载。
docker logs open-webui
这个模型用于文档检索/向量搜索功能,会影响RAG(检索增强生成)和文档上传分析功能。
由于本地部署DeepSeek主要想使用的就是本地文档分析功能,所以考虑使用国内镜像源,重新运行容器。
# 1. 停止并删除当前容器
docker stop open-webui
docker rm open-webui
# 2. 使用国内镜像源重新运行
docker run -d \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v D:/softwarePath/open_webui_data:/app/backend/data \
-e HF_ENDPOINT=https://hf-mirror.com \ # 使用国内镜像
-e PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple \ # Python包镜像
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
解释说明:
-v D:/softwarePath/open_webui_data:/app/backend/data - 保留之前的所有数据
-e HF_ENDPOINT=https://hf-mirror.com - 使用 HuggingFace 国内镜像

创建容器后,查看日志确认嵌入模型正在下载:
# 查看启动日志
docker logs -f open-webui

Fetching 30 files: 100%,这表示嵌入模型已经成功下载了
打开浏览器:http://localhost:3000
按照提示,注册登录就可以了,一般来说Open WebUI 可以自动检测到 Ollama 中的模型

如果没有检测到Ollama模型,可以自己设置一下

打开管理模型,添加Ollama 连接,填写配置信息:
http://host.docker.internal:11434

至此,所有部署均已完成,可以实现本地私有化AI了
六、启停顺序
启:
- 先启动 Ollama(AI模型服务)
- 再启动 Open WebUI(Web界面)
- 访问浏览器 (http://localhost:3000)
停:
- 先关闭 Open WebUI(Web界面)
- 再关闭 Ollama(AI模型服务)
七、启停方式
1、客户端方式(推荐)
Ollama 客户端:
启:
- 双击桌面上的 Ollama 图标,或从开始菜单启动 Ollama
- 启动后,会在系统托盘显示图标
- 右键点击托盘图标可看到状态
停:
- 右键点击系统托盘的 Ollama 图标
- 选择 Quit 或 退出,或通过任务管理器结束进程
Docker Desktop 客户端:
启动 Open WebUI:
- 启动 Docker Desktop(如果未运行)
- 在 Docker Desktop 中:
- 点击左侧 Containers(容器)
- 找到 open-webui 容器
- 点击 Start 按钮(三角形图标)
关闭 Open WebUI:
- 在 Docker Desktop 中:
- 点击左侧 Containers(容器)
- 找到 open-webui 容器
- 点击 Stop 按钮(正方形图标)
2、命令行方式
启:
# 1. 启动 Ollama(模型服务)
ollama serve
# 注意:这个命令会占用终端,需要保持运行
# 或使用后台运行:start /B ollama serve
# 2. 等待 Ollama 启动(约10-30秒)
# 检查是否就绪:ollama list
# 3. 启动 Open WebUI(Web界面)
docker start open-webui
# 4. 等待 WebUI 启动(约30-60秒)
# 检查是否就绪:docker logs open-webui --tail 5
停:
# 1. 停止 Open WebUI
docker stop open-webui
# 2. 停止 Ollama
# 如果 ollama serve 在终端前台运行:
# 按 Ctrl+C
# 如果 ollama 在后台运行:
taskkill /f /im ollama.exe