Windows系统利用Docker+Ollama+Open-WebUI部署DeepSeek本地模型

本文将介绍如何安装ollama,deepseek以及对应的web ui界面open ui。文章主要有如何将ollama安装在其他盘,而不是默认的c盘;如何安装docker以及配置国内的镜像源,并在docker中安装open ui。

1、deepseek是什么?

DeepSeek 是一家由中国企业家梁文峰创立于2023年的人工智能公司,总部位于杭州,专注于自然语言处理(NLP)和大语言模型(LLM)的研发。其核心产品包括DeepSeek-V3和DeepSeek-R1等先进的人工智能模型,这些模型在文本生成、智能对话、代码生成、知识问答等方面表现出色。

核心特点

  1. 开源与免费商用:DeepSeek采用MIT开源协议,允许开发者免费使用和商用其模型,这使得它在全球范围内受到广泛关注。

  2. 高效推理与多模态支持:DeepSeek的模型不仅在语言处理方面表现出色,还支持多模态交互,例如结合图像和文本信息进行推理。

  3. 中文优化:在中文语境下,DeepSeek的表现优于许多国际开源模型。

  4. 透明性:DeepSeek公开了其模型的训练技术和推理过程,甚至部分模型参数也开源,这使得开发者可以深入了解和优化模型。

2、下载Ollama

首先去omall的官网下载对应的ollama版本,Ollama

3、安装Ollama

        omalla下载完是omalla.exe的执行程序,可以直接双击进行安装,但是默认ollama的安装是在c盘,所以我们采取另一种安装方式。

        左下角搜索框中,输入CMD点击通过管理员打开,并进入到ollama.exe的目录,输出以下命令。

OllamaSetup.exe /DIR="D:\Net_Program\Net_Ollama"

会自动打开Ollama的安装界面,点击进行安装。

这样omalla就会安装到你指定的目录下。安装完成后验证omalla,在命令端输入

ollama -version

这样,omalla就安装完成了。

4、设置大模型安装的位置

        ollama默认安装的是c盘,所以下载seepseek模型也会在c盘,所以将omalla安装到其他盘,设置大模型的安装路径。

        打开环境变量,然后在用户变量中点击新建按钮,变量名为OLLAMA_MODELS,变量值为D:\Net_Program\Net_Ollama\Models,其中的变量值就是大模型下载存储的目录位置,最后点击确定即可,如下图所示:

5、下载deepseek

        打开Ollama官网,点击顶部的Models链接,此时我们就会看到deepseek-r1模型排在第一位,如下图所示

点击进入deepseek-1的链接,选择自己服务器可以支持的版本即可,

复制对应的语句,ollama run deepseek-r1:1.5b,在命令端执行该命令即可。

等待执行,执行完成后可以看到

此时就可以通过命令端就行提问了,但是命令端的使用体验相对较差,所以我们后面我们按照web ui。

6、安装docker环境

Docker是一种虚拟化容器技术。Docker基于镜像,我们通过在docker中运行open ui。

在安装docker前我们需要确保电脑的虚拟化环境已经开启,

在 “控制面板” 打开 “程序”,然后点击 “启用或关闭 Windows 功能”,勾选 “Hyper-V 管理工具” 和 “Hyper-V 平台”。

然后,

以管理员身份打开命令行窗口,输入 “wsl --set-default-version 2”,将默认设置为 WSL 2。
通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版,并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改。命令行窗口,输入 下面命令更新安装 wsl。

wsl --update --web-download

7、安装docker

docker下载windows的应用程序,按照步骤安装docker即可,

安装完成后,cmd 打开命令行窗口,输入 “docker version” 检查,显示 docker 的版本,表明安装成功。

安装完成后需要配置国内的镜像源,自带的镜像下载速度会很慢。点击右上的设置,然后进入设置页面,点击docker Engine,然后将下面的内容替换掉自带的内容。

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://registry.docker-cn.com",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

 替换完成后重启docker即可。

8、在docker中安装open ui

open ui是一个开源的大模型web项目,Github 仓库 https://github.com/open-webui/open-webui

 进入项目后,点击README.md,找到对应于docker的命令,根据自己配置的不同选择对应的命令,如果自己的电脑有GPU的话,采用以下命令。

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

 复制该命令,以管理员打开cmd,执行,等待下载完成就会在docker中出现open ui的镜像。

启动该镜像,启动完成尽可以打开对应的页面,端口为localhost:3000,第一次登录open ui需要注册管理源账号,注册完成后可以通过账号登录,同时可以通过该账号去添加其他账号。

通过左上角可以选择模型,open ui可以使用多个模型,可以通过重复步骤5来下载多个模型,在open ui界面根据自己的需求选择不同的模型。

先写到这吧,后续如果有时间可以写以下open ui的使用,如何通过open ui创建知识库以及创建个性化的大模型。如果有其他的问题,也可以在评论区踢我。

### 部署DeepSeek本地模型的教程 #### 使用DockerOllamaOpen-WebUI在Linux上的部署流程 为了成功部署DeepSeek本地模型,需先安装并配置好Docker环境。对于Linux系统而言,推荐按照官方文档中的指导完成安装过程[^1]。 一旦Docker准备就绪,下一步就是拉取所需的镜像文件。这里涉及到两个主要组件:一个是用于处理数据流的应用程序`docker.io/sladesoftware/log-application:latest`[^2];另一个则是特定版本的日志收集工具`docker.io/elastic/filebeat:7.8.0`。不过针对DeepSeek项目本身,则需要找到对应的预构建镜像或是自行创建适合该模型运行的基础镜像。 关于Ollama的支持,在此假设其作为服务端的一部分被集成到了最终使用的容器化应用里。而Open-WebUI作为一个图形界面前端框架,可以方便开发者调试以及用户交互操作。通常情况下,这类web应用程序也会被打包成独立的Docker镜像来简化分发与部署工作。 下面是一个简单的Python脚本例子展示如何通过命令行调用API接口启动相关服务: ```python import subprocess def start_services(): try: # 启动日志收集器FileBeat filebeat_command = "docker run -d docker.io/elastic/filebeat:7.8.0" process_filebeat = subprocess.Popen(filebeat_command.split(), stdout=subprocess.PIPE) # 启动Log Application log_app_command = "docker run -d docker.io/sladesoftware/log-application:latest" process_logapp = subprocess.Popen(log_app_command.split(), stdout=subprocess.PIPE) output, error = process_filebeat.communicate() if error is None: print("Services started successfully.") else: print(f"Error occurred while starting services: {error}") except Exception as e: print(e) if __name__ == "__main__": start_services() ``` 值得注意的是,实际环境中可能还需要考虑网络设置、存储卷挂载等问题以确保各个微服务之间能够正常通信协作。此外,由于具体实现细节会依赖于所选的技术栈及业务需求,因此建议参考更多针对性强的学习资源如《Docker入门到实践》一书获取深入理解。 最后提醒一点,当涉及敏感信息传输时务必遵循安全最佳实践原则保护隐私不受侵犯。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值