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

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南

一、前言

为了确保在 Docker 环境中顺利安装并高效运行 Ollama 以及 DeepSeek 离线模型,本文将详细介绍整个过程,涵盖从基础安装到优化配置等各个方面。通过对关键参数和配置的深入理解,您可以更好地掌控资源使用、保障数据安全以及提升整体性能。

二、环境要求

在开始之前,请确认以下环境需求:

  1. Docker 安装:确保 Docker 已正确安装并能够正常运行容器。

  2. GPU 支持:推荐使用支持 NVIDIA GPU 的环境,以提高模型推理速度。

  3. 网络连接:部分步骤需要访问互联网以下载镜像或模型文件。

  4. 存储空间:DeepSeek 模型文件较大,确保有足够的磁盘空间。

  5. DeepSeek模型:DeepSeek-R1版本的硬件需求和适用场景:

    模型版本CPU需求内存需求硬盘需求显卡需求适用场景
    1.5B最低 4 核8GB+3GB+非必需(纯 CPU 推理),若 GPU 加速可选 4GB+ 显存(如 GTX 1650)低资源设备部署(如树莓派、旧款笔记本)
    实时文本生成(聊天机器人、简单问答)
    嵌入式系统或物联网设备
    7B8 核以上(推荐现代多核 CPU)16GB+8GB+8GB显存(如RTX 3070/4060)本地开发测试(中小型企业)
    中等复杂度NLP任务(文本摘要、翻译)
    轻量级多轮对话系统
    8B与7B相近,略高10%-20%与7B相近,略高10%-20%-与7B相近,略高10%-20%需更高精度的轻量级任务(如代码生成、逻辑推理)
    14B12核以上32GB+15GB+16GB显存(如RTX 4090或A5000)企业级复杂任务(合同分析、报告生成)
    长文本理解与生成(书籍/论文辅助写作)
    32B16核以上(如AMD Ryzen 9或Intel i9)64GB+30GB+24GB显存(如A100 40GB或双卡RTX 3090)高精度专业领域任务(医疗/法律咨询)
    多模态任务预处理(需结合其他框架)
    70B32核以上(服务器级CPU)128GB+70GB+多卡并行(如2x A100 80GB或4x RTX 4090)科研机构/大型企业(金融预测、大规模数据分析)
    高复杂度生成任务(创意写作、算法设计)
    671B64核以上(服务器集群)512GB+300GB+多节点分布式训练(如8x A100/H100)国家级/超大规模AI研究(如气候建模、基因组分析)
    通用人工智能(AGI)探索

三、Ollama 容器详细安装与配置

1. 运行ollama容器

docker run -d --name ollama \--gpus=all \--oom-kill-disable \ # 防止因内存不足导致容器被杀死-m 8g \              # 为容器分配4GB内存(可根据需要调整)-c 2 \               # 分配2个CPU核心(可根据需要调整)-p 11434:11434 \-v /path/to/ollama/config:/root/.ollama/config \-v /path/to/ollama/models:/root/.ollama/models \-v /path/to/ollama/logs:/root/.ollama/logs \-e OLLAMA_ORIGINS="*"-e OLLAMA_PORT=11434 \-e OLLAMA_HOST=0.0.0.0 \-e OLLAMA_ORIGINS="http://localhost,http://your-domain.com" \-e LOG_LEVEL=INFO \ollama/ollama:latest

参数详解:

  • --gpus=all:允许容器使用主机上的所有可用的GPU资源,以加速DeepSeek模型的推理。
  • --oom-kill-disable:防止在内存不足导致容器被杀死,这对于长时间运行或处理大型任务尤为重要。
  • -m 8g:为容器分配4GB(示例值)的内存。根据您的可用资源和DeepSeek模型的大小进行适当调整,较大的模型可能需要更多内存。
  • -c 2:分配2个CPU核心,如果模型推理主要依赖于CPU,这能确保容器获得足够的计算能力。
  • -p 11434:11434:将主机的11434端口映射到容器内的11434端口,方便外部访问Ollama服务。
  • 卷挂载(Volumes)
    • /path/to/ollama/config:/root/.ollama/config:将配置文件目录挂载到主机对应位置,确保配置持久化,不会因容器重启或删除而丢失。
    • /path/to/ollama/models:/root/.ollama/models:模型文件持久化存储在主机上,避免每次下载并节省时间。
    • /path/to/ollama/logs:/root/.ollama/logs:日志文件持久保存,便于长期监控和故障排查。
  • 环境变量(Environment Variables)
    • OLLAMA_ORIGINS="*":允许所有来源访问 Ollama API。
    • OLLAMA_PORT=11434:指定Ollama服务监听的端口号,需与映射端口一致。
    • OLLAMA_HOST=0.0.0.0:允许容器内服务绑定到所有网络接口,这样可以在不同主机和网络环境下访问。
    • OLLAMA_ORIGINS="http://localhost,http://your-domain.com":设置可信的请求来源,提升安全性,防止CSRF攻击。请将your-domain.com替换为实际使用域名或IP地址。
    • LOG_LEVEL=INFO:调整日志输出级别,便于监控和调试。

2. 进入ollama

# 进入ollama容器
docker exec -it ollama /bin/bash
# 查看帮助
ollama --help

在这里插入图片描述

四、Deepseek模型部署与运行

1. 下载运行模型

ollama pull deepseek-r1:7b

在这里插入图片描述

2. 运行deepseek模型

ollama run deepseek-r1:7b

在这里插入图片描述

3. 测试是否成功

# ollama访问IP和端口
curl http://localhost:11434/api/generate -d '{"model": "deepseek-r1:70b","prompt":"你好"
}'

在这里插入图片描述

五、Cherry Studio交互界面

1. 下载Cherry Studio

Cherry Studio

在这里插入图片描述

2. 配置Deepseek模型

在这里插入图片描述

3. 使用

在这里插入图片描述

相关文章:

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南 一、前言 为了确保在 Docker 环境中顺利安装并高效运行 Ollama 以及 DeepSeek 离线模型,本文将详细介绍整个过程,涵盖从基础安装到优化配置等各个方面。通过对关键参数和配置的深入理解…...

Python 自然语言处理(NLP)和文本挖掘的常规操作过程

Python 自然语言处理(NLP)和文本挖掘 自然语言处理(NLP)和文本挖掘是数据科学中的重要领域,涉及对文本数据的分析和处理。Python 提供了丰富的库和工具,用于执行各种 NLP 和文本挖掘任务。以下是一些常见的…...

传统数组 vs vector和list

传统的数组: int arr[10]; 传统的数组有以下的缺点: 1)长度不可修改 2)内存分配 局部数组:把数组定在函数内, 数组便是局部变量,故会被分配在栈上 但栈的大小是有限制的 ,故其在内存中不能超…...

CRMEB 多商户版v3.0.1源码全开源+PC端+Uniapp前端+搭建教程

一.介绍 crmeb多商户是一套B2B2C商家入驻模式的平台多商户商城系统,系统支持平台自营、联营、招商等多种运营模式,可满足企业新零售、批发、分销、预售、O2O、多店、商铺入驻等各种业务需求。 后端全开源、uniapp多端可编译! 二、搭建教程…...

【ESP32】ESP-IDF开发 | WiFi开发 | HTTPS服务器 + 搭建例程

1. 简介 1.1 HTTPS HTTPS(HyperText Transfer Protocol over Secure Socket Layer),全称安全套接字层超文本传输协议,一般理解为HTTPSSL/TLS,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信…...

Vue2 中使用 UniApp 时,生命周期钩子函数总结

在 Vue2 中使用 UniApp 时,生命周期钩子函数是一个重要的概念。它允许开发者在特定的时间点运行代码,管理组件的生命周期。以下是 Vue2 中 UniApp 常用的生命周期钩子函数总结: 1. beforeCreate 说明: 组件实例刚被创建,此时数据…...

如何在 Vue 3 中使用 Vue Router 和 Vuex

在 Vue 3 中使用 Vue Router 1. 安装 Vue Router 在项目根目录下,通过 npm 或 yarn 安装 Vue Router 4(适用于 Vue 3): npm install vue-router4 # 或者使用 yarn yarn add vue-router42. 创建路由配置文件 在 src 目录下创建…...

Fiori APP配置中的Semantic object 小bug

在配置自开发程序的Fiori Tile时,需要填入Semantic Object。正常来说,是需要通过事务代码/N/UI2/SEMOBJ来提前新建的。 但是在S4 2022中,似乎存在一个bug,即无需新建也能输入自定义的Semantic Object。 如下,当我们任…...

【触想智能】工业显示器和普通显示器的区别以及工业显示器的主要应用领域分析

在现代工业中,工业显示器被广泛应用于各种场景,从监控系统到生产控制,它们在实时数据显示、操作界面和信息传递方面发挥着重要作用。与普通显示器相比,工业显示器在耐用性、可靠性和适应特殊环境的能力上有着显著的差异。 触想工业…...

BPMN.js 与 DeepSeek 集成:打造个性化 Web 培训项目的秘诀

在数字化时代,Web培训项目的需求日益增长,特别是对于程序员群体,他们寻求高效、灵活的方式来提升自己的技能。本文将深入探讨如何评估BPMN.js与DeepSeek集成方案,以满足开发Web培训项目的需求。 BPMN.js 的优势 BPMN.js是一个专…...

第二月:学习 NumPy、Pandas 和 Matplotlib 是数据分析和科学计算的基础

以下是一个为期 **1 个月(30 天)**的详细学习计划,精确到每天的学习内容和练习作业,帮助你系统地掌握 NumPy、Pandas 和 Matplotlib 的核心功能。 第 1 周:NumPy 基础 Day 1:NumPy 简介与数组创建 学习内…...

安全测试|SSRF请求伪造

前言 SSRF漏洞是一种在未能获取服务器权限时,利用服务器漏洞,由攻击者构造请求,服务器端发起请求的安全漏洞,攻击者可以利用该漏洞诱使服务器端应用程序向攻击者选择的任意域发出HTTP请求。 很多Web应用都提供了从其他的服务器上…...

Flink提交pyflink任务

1.官方文档: flink1.14:https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/cli/#submitting-pyflink-jobs flink1.18:https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/cli/#submitting-pyflink-jobs 2.提…...

对称算法模式之CTR

Note 计数器模式,通过加密递增计数器生成密钥流,后密钥流与明文分组异或得密文分组可并行性进行加密或者解密,性能较高明文可以是任意长度,不需要填充可以直接加密或解密指定块,块与块间不具有依赖关系 参数说明 任…...

Map 和 Set

目录 一、搜索 概念: 模型: 二、Map ​编辑 1.Map 实例化: 2. Map的常见方法: 3.Map的常见方法演示: 1. put(K key, V value):添加键值对 3. containsKey(Object key):检查键是否存在 4.…...

STOMP协议

引用:https://blog.csdn.net/print_helloword/article/details/142597122 什么是STOMP协议 STOMP (simple text oriented messaging protocol): 一种简单的,基于文本的消息传输协议,,,最初是为了解决在消息队列中&am…...

手动埋点的demo

上代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>埋点示例</title> </head><b…...

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术&#xff0c;能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道&#xff0c;有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…...

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

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

【第14章:神经符号集成与可解释AI—14.2 可解释AI技术:LIME、SHAP等的实现与应用案例】

在这里插入图片描述 凌晨三点的ICU病房,值班医生李主任盯着AI辅助诊断系统的红色警报——这套准确率高达95%的深度学习系统,突然建议对一位肾衰竭患者进行肝移植手术。正当医疗组陷入混乱时,李主任打开了系统的"解释模式",屏幕上立即跳出SHAP分析图:模型误将CT…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...