DeepSeek本机部署(基于Ollama和Docker管理)

news2025/3/10 15:03:08

目录

一、ollama 与 docker 简介

(一)ollama(Ollama)

(二)docker

二、利用 ollama 和 docker 配置 deepseek-r1 的准备工作

(一)硬件需求

(二)软件安装

三、配置 deepseek-r1 的详细步骤

(一)使用 ollama 获取 deepseek-r1 模型

(二)利用 docker 创建 deepseek-r1 容器

查看模型列表

下载模型命令

注意事项

(三)启动和测试 deepseek-r1 服务

四、这种配置方式的优势

(一)快速部署

(二)环境隔离

(三)易于扩展

五、可能遇到的问题及解决方法

(一)网络问题

(二)资源冲突


在人工智能技术日新月异的时代,大语言模型的应用越来越广泛,DeepSeek 作为其中的佼佼者,备受开发者和技术爱好者的关注。通过在本机部署 DeepSeek,能够更灵活地利用其强大功能。而借助 ollama 和 docker 进行 deepseek - r1 的配置,能为我们带来更高效、便捷的部署体验。

一、ollama 与 docker 简介

(一)ollama(Ollama)

ollama 是一个强大的工具,它为模型的管理和运行提供了便利。它可以简化模型的下载、配置和启动过程,让用户能够快速地将不同的模型集成到自己的工作流程中。例如,在处理多个不同类型的大语言模型时,ollama 可以轻松管理这些模型之间的切换和调用,提高开发效率。

(二)docker

docker 则是容器化技术的代表,它能够将应用程序及其依赖项打包成一个独立的容器。在 DeepSeek 部署中,使用 docker 可以确保 deepseek - r1 在不同环境中具有一致的运行状态。无论在开发环境、测试环境还是生产环境,只要安装了 docker,就可以运行相同的 deepseek - r1 容器,避免了因环境差异导致的兼容性问题。

二、利用 ollama 和 docker 配置 deepseek-r1 的准备工作

(一)硬件需求

同常规的 DeepSeek 部署类似,需要一台性能不错的计算机。内存建议 16GB 以上,这样在运行容器和模型时,能够保证系统的流畅性。同时,配备 NVIDIA GPU 会显著提升模型的推理速度,对于处理大规模文本任务非常关键。

(二)软件安装

  1. 安装 docker:可以从 docker 官方网站获取适合你操作系统的安装包,按照官方指引进行安装。在安装完成后,确保 docker 服务正常运行,可通过简单的命令行测试来验证(sheel中输入docker)。
  1. 安装 ollama:根据你使用的操作系统,选择合适的安装方式。例如,在 Linux 系统中,可以通过特定的脚本进行安装。安装完成后,配置好 ollama 的运行环境变量,确保其能够被系统正确识别。

三、配置 deepseek-r1 的详细步骤

可以看出DeepSeek-r1完全模型在各方面优于OpenAI,在某些方面评估甚至强于OpenAI,参数量适合于本地部署办公使用。

(一)使用 ollama 获取 deepseek-r1 模型

通过 ollama 的命令行工具,输入特定的命令来搜索和下载 deepseek - r1 模型。ollama 会自动从官方或指定的源获取模型文件,并将其存储在本地的模型库中。

(二)利用 docker 创建 deepseek-r1 容器

  1. 基于下载好的 deepseek - r1 模型,使用 docker 命令创建一个新的容器。在创建容器时,需要指定容器的名称、挂载的目录(以便与本地文件系统进行交互)以及容器运行所需的环境变量。

查看模型列表

可以访问 ollama 官方的模型仓库library查看支持的模型列表,点击浏览某个模型,可看到详细说明,如模型参数、大小、运行命令等信息。

下载模型命令

使用ollama pull命令进行下载。例如,若要下载图片中的deepseek - r1 7b 模型,在命令行中输入

ollama pull deepseek-r1:7b 

(若不指定具体版本如 7b 等,默认下载最新版本)。首次使用该命令运行模型时,ollama 也会自动从网上下载模型。

注意事项

  1.   下载速度可能受网络状况影响,如果网络不稳定,下载模型可能需要较长等待时间。

     2.   部分模型对硬件资源有一定要求,如运行较大的模型(像 llama3 - 70b)可能会较慢,甚至出现硬件资源不足无法正常运行的情况,下载前可了解模型对硬件的需求。(主要是系统内存的要求)

        配置容器的网络设置,确保容器能够与外部进行通信。可以根据实际需求,设置容器的端口映射,使本地应用能够访问到容器内运行的 deepseek - r1 服务。

(三)启动和测试 deepseek-r1 服务

  1. (docker搭建请参照另一篇文章)完成容器创建后,使用 docker 命令启动 deepseek - r1 容器。容器启动后,ollama 会自动加载 deepseek - r1 模型,并启动相关的服务进程。
  1. 通过编写简单的测试脚本,向运行在容器内的 deepseek - r1 服务发送请求,验证模型是否正常工作。例如,可以发送一段文本,请求模型生成回答,检查返回的结果是否符合预期。

  (四)WebUi的配置

搭建部署Open WebUI有两种方式

  1. Docker方式(官网推荐)
  2. 源代码部署安装方式:(文档🚀 Getting Started | Open WebUI)

Open WenUI 官网:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

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

此命令启动一个docker容器

  1. docker run:这是 Docker 用于运行容器的基本命令,它会根据指定的镜像创建并启动一个新的容器实例。
  2. -d:表示以守护进程(detached)模式运行容器,即容器会在后台运行,不会占用当前命令行终端的输入输出流,方便执行其他命令。
  3. -p 3000:8080:端口映射参数,将容器内部的 8080 端口映射到主机的 3000 端口。这样,通过访问主机的 3000 端口,就可以访问到容器内运行在 8080 端口上的open-webui应用。
  4. --add-host=host.docker.internal:host-gateway:此参数用于向容器内的/etc/hosts文件中添加一条主机映射记录,将host.docker.internal映射到host-gateway。这在容器需要与主机进行通信时非常有用,特别是在一些特殊网络环境下,使得容器能够通过host.docker.internal这个域名访问到主机。
  5. -v D:devopen-webui:/app/backend/data:这是卷挂载(volume mount)参数,将主机上的D:devopen-webui目录挂载到容器内的/app/backend/data目录。这意味着主机和容器可以共享这个目录下的文件,主机目录中的任何更改都会实时反映到容器内,反之亦然。常用于数据持久化或在容器和主机之间传递数据。
  6. --name open-webui:为运行的容器指定一个名称为open-webui,方便后续对容器进行管理和操作,例如使用docker stop open-webui停止容器,或docker start open-webui启动容器。
  7. --restart always:表示无论容器因为何种原因停止,Docker 都会自动尝试重新启动它,确保容器始终处于运行状态。
  8. ghcr.io/open-webui/open-webui:main:这是容器所使用的镜像名称和标签,指定从 GitHub Container Registry(ghcr.io)上拉取open-webui/open-webui镜像的main版本。如果本地没有该镜像,Docker 会自动从指定的镜像仓库下载。

启动ollama容器

   1.使用该命令启动CPU版运行本地AI模型

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

    2.此命令用于启动GPU版本运行AI模型

前提是笔记本已配置NVIDIA的GPU驱动,可在shell中输入nvidia-smi查看详细情况

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

​​​​

然后就可以访问docker中给出的open webui的地址启动web界面,选择好模型就可以进行问答对话了,恭喜你拥有了自己的AI小助手!

四、这种配置方式的优势

(一)快速部署

ollama 和 docker 的结合,大大缩短了 deepseek - r1 的部署时间。通过简单的命令行操作,即可完成模型的获取和容器的创建,相比传统的手动配置方式,效率得到了极大提升。

(二)环境隔离

docker 的容器化技术实现了环境的隔离,使得 deepseek - r1 在独立的环境中运行,不会受到本地系统其他软件的干扰。同时,也方便对模型进行版本管理和维护,当需要更新或切换模型版本时,只需要重新创建或更新容器即可。

(三)易于扩展

在后续的应用中,如果需要增加模型的计算资源,或者部署多个 deepseek - r1 实例,可以轻松地通过 docker 的集群管理功能进行扩展。ollama 也能够方便地管理多个模型之间的协同工作,满足不同业务场景的需求。

五、可能遇到的问题及解决方法

(一)网络问题

在下载模型或容器通信过程中,可能会遇到网络不稳定的情况。解决方法是检查网络连接,尝试更换网络环境或使用代理服务器。同时,ollama 和 docker 都提供了相关的网络配置选项,可以根据实际情况进行调整。

(二)资源冲突

当本地系统中已经运行了其他占用端口或资源的服务时,可能会与 deepseek - r1 容器产生冲突。可以通过修改容器的端口映射或调整本地服务的配置,来避免资源冲突。

利用 ollama 和 docker 配置 deepseek - r1 实现 DeepSeek 本机部署,为我们提供了一种高效、便捷且稳定的部署方式。随着人工智能技术的不断发展,这种基于容器化和模型管理工具的部署方法,将在更多的应用场景中发挥重要作用,推动大语言模型技术在本地开发和应用中的普及。

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

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

相关文章

C++复试笔记(一)

Setw 是C中用于设置输出字段宽度的函数。当使用 setw(3) 时,它会设置紧接着的输出字段的最小宽度为3个字符。如果字段内容长度小于3,则会在左侧填充空格以达到指定宽度;如果内容长度大于或等于3,则全部内容将被输出,…

学习小程序开发--Day1

项目学习开篇 项目架构 项目进程 创建uni-app项目 通过HBuilderX创建 小结 page.json 和 tabBar 目录文件 pages.json的配置

“量子心灵AI“的监控仪表盘 - javascript网页设计案例

【前端实战】基于Three.js和Chart.js打造未来科技风AI监控仪表盘 本文通过AI辅助开发,详细记录了一个高级前端项目的完整实现过程。文章包含核心代码片段、技术要点及遇到的问题与解决方案。适合有一定前端基础的开发者学习参考。 1. 项目概述 本文详细介绍了一个名…

Redis 中 string 和 list 的原理说明

Redis 中 string 和 list 的底层实现 Redis有5种基础数据结构,对应的value分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合) Redis 对象头结构体: struct RedisObject {int4 type; // 4bits 对象的基本类型…

DeepLabv3+改进6:在主干网络中添加SegNext_Attention|助力涨点

🔥【DeepLabv3+改进专栏!探索语义分割新高度】 🌟 你是否在为图像分割的精度与效率发愁? 📢 本专栏重磅推出: ✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化 ✅ 即插即用模块:ASPP+升级、解码器 PS:订阅专栏提供完整代码 目录 论文简介 步骤一 步骤二…

亚信安全发布2024威胁年报和2025威胁预测

在当今数字化时代,网络空间已成为全球经济、社会和国家安全的核心基础设施。随着信息技术的飞速发展,网络连接了全球数十亿用户,推动了数字经济的蓬勃发展,同时也带来了前所未有的安全挑战。2024年,网络安全形势愈发复…

[数据分享第七弹]全球洪水相关数据集

洪水是一种常见的自然灾害,在全球范围内造成了极为严重的威胁。近年来,针对洪水事件的检测分析,以及对于洪水灾害和灾后恢复能力的研究日渐增多,也产生了众多洪水数据集。今天,我们一起来收集整理一下相关数据集。&…

MySQL 面试篇

MySQL相关面试题 定位慢查询 **面试官:**MySQL中,如何定位慢查询? 我们当时做压测的时候有的接口非常的慢,接口的响应时间超过了2秒以上,因为我们当时的系统部署了运维的监控系统Skywalking ,在展示的报表中可以看到…

【Andrej Karpathy 神经网络从Zero到Hero】--2.语言模型的两种实现方式 (Bigram 和 神经网络)

目录 统计 Bigram 语言模型质量评价方法 神经网络语言模型 【系列笔记】 【Andrej Karpathy 神经网络从Zero到Hero】–1. 自动微分autograd实践要点 本文主要参考 大神Andrej Karpathy 大模型讲座 | 构建makemore 系列之一:讲解语言建模的明确入门,演示…

Android MVC、MVP、MVVM三种架构的介绍和使用。

写在前面:现在随便出去面试Android APP相关的工作,面试官基本上都会提问APP架构相关的问题,用Java、kotlin写APP的话,其实就三种架构MVC、MVP、MVVM,MVC和MVP高度相似,区别不大,MVVM则不同&…

python使用django搭建图书管理系统

大家好,你们喜欢的梦幻编织者回来了 随着计算机网络和信息技术的不断发展,人类信息交流的方式从根本上发生了改变,计算机技术、信息化技术在各个领域都得到了广泛的应用。图书馆的规模和数量都在迅速增长,馆内藏书也越来越多,管理…

JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件

JavaScript 事件系统是构建交互式 Web 应用的核心。本文从原生 DOM 事件到 React 的合成事件,内容涵盖: JavaScript 事件基础:事件类型、事件注册、事件对象事件传播机制:捕获、目标和冒泡阶段高级事件技术:事件委托、…

大话机器学习三大门派:监督、无监督与强化学习

以武侠江湖为隐喻,系统阐述了机器学习的三大范式:​监督学习(少林派)​凭借标注数据精准建模,擅长图像分类等预测任务;无监督学习(逍遥派)​通过数据自组织发现隐藏规律,…

win11编译llama_cpp_python cuda128 RTX30/40/50版本

Geforce 50xx系显卡最低支持cuda128,llama_cpp_python官方源只有cpu版本,没有cuda版本,所以自己基于0.3.5版本源码编译一个RTX 30xx/40xx/50xx版本。 1. 前置条件 1. 访问https://developer.download.nvidia.cn/compute/cuda/12.8.0/local_…

FY-3D MWRI亮温绘制

1、FY-3D MWRI介绍 风云三号气象卫星(FY-3)是我国自行研制的第二代极轨气象卫星,其有效载荷覆 盖了紫外、可见光、红外、微波等频段,其目标是实现全球全天候、多光谱、三维定量 探测,为中期数值天气预报提供卫星观测数…

Codeforces1929F Sasha and the Wedding Binary Search Tree

目录 tags中文题面输入格式输出格式样例输入样例输出说明 思路代码 tags 组合数 二叉搜索树 中文题面 定义一棵二叉搜索树满足,点有点权,左儿子的点权 ≤ \leq ≤ 根节点的点权,右儿子的点权 ≥ \geq ≥ 根节点的点权。 现在给定一棵 …

HBuilder X 使用 TortoiseSVN 设置快捷键方法

HBuilder X 使用 TortoiseSVN 设置快捷键方法 单文件:(上锁,解锁,提交,更新) 安装好 TortoiseSVN ,或者 按图操作: 1,工具栏中 【自定义快捷键】 2,点击 默认的快捷键设置&…

Java jar包后台运行方式详解

目录 一、打包成 jar 文件二、后台运行 jar 文件三、示例四、总结在 Java 开发中,我们经常需要将应用程序打包成可执行的 jar 文件,并在后台运行。这种方式对于部署长时间运行的任务或需要持续监听事件的应用程序非常重要。本文将详细介绍如何实现 Java jar 包的后台运行,并…

Mysql5.7-yum安装和更改mysql数据存放路径-2020年记录

记录下官网里用yum rpm源安装mysql, 1 官网下载rpm https://dev.mysql.com/downloads/repo/yum/ https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html(附官网操作手册) wget https://repo.mysql.com//mysql80-community-release…

[项目]基于FreeRTOS的STM32四轴飞行器: 七.遥控器按键

基于FreeRTOS的STM32四轴飞行器: 七.遥控器 一.遥控器按键摇杆功能说明二.摇杆和按键的配置三.按键扫描 一.遥控器按键摇杆功能说明 两个手柄四个ADC。 左侧手柄: 前后推为飞控油门,左右推为控制飞机偏航角。 右侧手柄: 控制飞机飞行方向&a…