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

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker

这里建议用docker来部署,方便简单
安装教程需要自己找详细的,会用到跳过
如果你没有安装 Docker,可以按照以下步骤安装:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce

安装完 Docker 后,确认 Docker 是否安装成功:

sudo docker --version

2、运行 Ollama 容器

1、安装运行Ollama

Ollama 提供了 Docker 镜像,你可以使用以下命令拉取最新版本的 Ollama 镜像:

sudo docker pull ollama/ollama

拉取镜像后,可以启动 Ollama 容器,这个命令会启动 Ollama 容器并在后台运行。

sudo docker run -d --name ollama-container ollama/ollama

为了能直接在外部访问到,可以将端口挂载到宿主机上(推荐)

sudo docker run -d --name ollama-container -p 11434:11434 ollama/ollama

查看 Ollama 容器的运行状态:

sudo docker ps

如果容器在运行,你会看到 ollama-container 在列表中。

拉取deepseek模型

直接在宿主机操作Ollama容器即可这个过程会比较慢,需要耐心等待

由于CDN资源下发的合理优化,后期经常下载艰难,当下载缓慢时,可以使用ctrl + c 打断,然后重新执行下载,这样可以快一点点,详见下面的博客

https://blog.csdn.net/cy21951612/article/details/145513664

进入 Ollama 容器
如果你需要进入正在运行的 Ollama 容器,可以使用:

sudo docker exec -it ollama-container bash

执行拉取模型命令

ollama run deepseek-r1:1.5b

拉取完成即可进行命令行对话
在这里插入图片描述

2、查看拉取模型进度

方法 1:使用 docker logs 查看拉取进度

docker logs -f ollama-container

✅ 作用:

  • -f 让日志实时输出,可以看到 ollama pull 的下载进度。
  • 如果 ollama pull deepseek-r1:1.5b 仍在进行,你应该能看到进度条或者下载状态。

如果你想只看最近的日志,可以用:

docker logs --tail 50 ollama-container

这样只显示最新 50 行日志。

方法 2:进入 ollama-container 检查

docker exec -it ollama-container sh

然后在容器内部执行:

ps aux | grep ollama

✅ 作用:
你可以看到 ollama pull 是否仍在运行,或者是否已经完成。
例如,如果 ollama pull 正在运行,你会看到类似:

root       12  0.0  0.1  50000  5000 ?        S    12:00   0:02 ollama pull deepseek-r1:1.5b

如果你已经在容器内,你也可以直接运行:

ollama list

✅ 作用:
这个命令会列出 所有已经下载的模型,如果 deepseek-r1:1.5b 已经在列表中,说明拉取已经完成。
拉取完成后,你可以退出容器:
exit

方法 3:检查 Docker 的下载进度
如果你想查看 Docker 是否仍在下载 deepseek-r1:1.5b,可以运行:
docker stats ollama-container

✅ 作用:
如果 ollama pull 仍在进行,你可能会看到 网络流量 占用较高,说明仍在下载。
如果 CPU/网络流量都接近 0,说明可能已经完成了。

方法 4:查看已下载的模型
如果你想确认 deepseek-r1:1.5b 是否已经下载完成,可以直接在 宿主机 执行:

curl http://localhost:11434/api/tags

或者在 ollama-container 内部执行:

ollama list

✅ 作用:
如果 deepseek-r1:1.5b 出现在列表中,说明它已经下载完成,可以使用了。

3、其他Ollama操作

停止 Ollama 容器
如果你想停止 Ollama 容器,可以运行以下命令:

sudo docker stop ollama-container

进入 Ollama 容器

如果你需要进入正在运行的 Ollama 容器,可以使用:

sudo docker exec -it ollama-container bash

3、创建Docker 网络

确保运行了 ollama-container,可以用以下命令确认它在运行:

docker ps

如果它没有运行,先启动它:

docker start ollama-container

创建一个 Docker 网络,如下命令创建了一个名为 ollama-net 的自定义网络。

docker network create ollama-net

把 ollama-container 连接到 ollama-net

docker network connect ollama-net ollama-container

这样 ollama-container 就加入了 ollama-net 网络,其他在该网络中的容器可以通过 容器名称 直接访问它。

4、配置前端UI

拉取 nextjs-ollama-ui 的镜像(如果本地没有):

docker pull jakobhoeg/nextjs-ollama-ui:latest

然后运行 nextjs-ollama-ui 容器:

docker run -d -p 3000:3000 \--network ollama-net \-e OLLAMA_URL=http://ollama-container:11434 \--name nextjs-ollama-ui \--restart always \jakobhoeg/nextjs-ollama-ui:latest

解释:

  • –network ollama-net:让 nextjs-ollama-ui 也加入 ollama-net,这样它能直接访问 ollama-container
  • -e OLLAMA_URL=http://ollama-container:11434:配置前端 UI 连接 ollama-container 的 11434 端口
  • -p 8080:3000:将 宿主机的 3000 端口 映射到 前端的 3000 端口,你可以通过 http://localhost:8080 访问 UI

等待容器启动后,你可以在浏览器中访问:

http://localhost:3000

然后 UI 就能正确连接到 ollama-container
在这里插入图片描述

选择模型,测试问题可以成功运行
在这里插入图片描述

相关文章:

使用Docker + Ollama在Ubuntu中部署deepseek

1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…...

NFT Insider #168:The Sandbox 推出新春{金蛇礼服}套装;胖企鹅合作 LINE Minini

引言:NFT Insider 由 NFT 收藏组织 WHALE Members、BeepCrypto 联合出品, 浓缩每周 NFT 新闻,为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据,艺术新闻类,游戏新闻类,虚拟…...

字符串高频算法:无重复字符的最长子串

题目 3. 无重复字符的最长子串 - 力扣(LeetCode) 解题思路 思路 方法: 滑动窗口 [!简单思路] [^1]以示例一中的字符串 abcabcbb 为例,找出从每一个字符开始的,不包含重复字符的最长子串,其中最长的那个字符串即为答…...

集成学习(一):从理论到实战(附代码)

一、引言 在机器学习领域,打造一个独立、强大的算法是解决问题的关键。然而,集成学习提供了一种不同的视角:通过组合多个“弱”学习器来创建一个更强大的模型。本文探讨集成学习的思想、方法及其应用。 二、机器学习 vs 集成学习思想 传统…...

本地部署DeepSeek-R1模型(新手保姆教程)

背景 最近deepseek太火了,无数的媒体都在报道,很多人争相着想本地部署试验一下。本文就简单教学一下,怎么本地部署。 首先大家要知道,使用deepseek有三种方式: 1.网页端或者是手机app直接使用 2.使用代码调用API …...

轻松理解CSS中的float浮动元素

1.float:left,float:right可以让元素脱离原始文档流,也就是所谓的“浮动”,可以理解为元素漂浮在原本所占位置的上空,意思是元素漂浮起来了,不占原始文档流的空间。但是,别的元素可以感知到浮动元素的存在&…...

SOME/IP--协议英文原文讲解5

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 这一章节…...

如何优化频繁跳槽后的简历?

大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | A…...

存储异常导致的Oracle重大生产故障

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...

从家庭IP到全球网络资源的无缝连接:Cliproxy的专业解决方案

数字化时代,家庭IP作为个人或家庭接入互联网的门户,其重要性日益凸显。然而,要实现从家庭IP到全球网络资源的无缝连接,并享受高效、安全、稳定的网络访问体验,往往需要借助专业的代理服务。Cliproxy,作为业…...

java项目之金华学校社团管理系统源码(ssm+mysql)

项目简介 金华学校社团管理系统实现了以下功能: 金华学校社团管理系统的主要使用者管理员对系统用户、公告信息进行管理。对社团信息进行管理,审核报名,统计社团报名结果等。学生维护个人信息,查看本校的社团信息,对…...

链表(LinkedList) 1

上期内容我们讲述了顺序表,知道了顺序表的底层是一段连续的空间进行存储(数组),在插入元素或者删除元素需要将顺序表中的元素整体移动,时间复杂度是O(n),效率比较低。因此,在Java的集合结构中又引入了链表来解决这一问…...

一、OSG学习笔记-编译开发环境

一、准备工作 1、osg3.6.4源码下载; openscenegraph/OpenSceneGraph at OpenSceneGraph-3.6.4 还有osg中所依赖的第三方库 2、cmake 下载安装好 3、Visual Studio 2019下载安装好 二、cmake 编译构建项目 这里下方1,2,两个先点击1&am…...

【Redis】Linux、Windows、Docker 环境下部署 Redis

一、Linux环境部署Redis 1、卸载 # 查看 Redis 是否还在运行 [appuserlocalhost redis]$ ps -ef|grep redis appuser 135694 125912 0 14:24 pts/1 00:00:00 ./bin/redis-server *:6379 appuser 135731 125912 0 14:24 pts/1 00:00:00 grep --colorauto redis# 停止…...

OSPF基础(3):区域划分

OSPF的区域划分 1、区域产生背景 路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。OSPF域如果仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸…...

第436场周赛:按对角线进行矩阵排序、将元素分配给有约束条件的组、统计可以被最后一个数位整除的子字符串数目、最大化游戏分数的最小值

Q1、按对角线进行矩阵排序 1、题目描述 给你一个大小为 n x n 的整数方阵 grid。返回一个经过如下调整的矩阵: 左下角三角形(包括中间对角线)的对角线按 非递增顺序 排序。右上角三角形 的对角线按 非递减顺序 排序。 2、解题思路 遍历所…...

DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响

DeepSeek vs. ChatGPT:不同的诞生时间,对人工智能发展的不同影响 ChatGPT 和 DeepSeek 诞生于不同的时间节点,代表了人工智能不同阶段的发展方向。它们在技术、应用以及对AI发展趋势的影响方面各有侧重。 1. 诞生时间与背景 ChatGPT&#x…...

chrome-base 如何实现一个BindOnce

考虑一个问题: worker_thread.task_runner()->PostDelayedTask(FROM_HERE, base::BindOnce(&Ref::Foo, ref, 1), base::Milliseconds(1000)); BindOnce 是如何实现的呢? 翻看源码:base\functional\bind.h 写的 非常简洁 // Bind a…...

代码随想录算法训练营day38

代码随想录算法训练营 —day38 文章目录 代码随想录算法训练营前言一、322. 零钱兑换二维dp数组 二、279.完全平方数二维dp数组 三、139. 单词拆分多重背包背包问题总结问题类型递推公式遍历顺序 前言 今天是算法营的第38天,希望自己能够坚持下来! 今日…...

对接DeepSeek

其实,整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。 获取 KEY https://platform.deepseek.com/transactions 直接付款就是了(现在官网暂停充值2025年2月7日&#xff0…...

【学术投稿-第六届新材料与清洁能源国际学术会议(ICAMCE 2025)】组织与结构:HTML中的<fieldset>与<legend>标签解析

官网:www.icceam.com 简介 第六届新材料与清洁能源国际学术会议(ICAMCE 2025)将于2025年2月21-23日在郑州隆重举行。清洁能源、新材料是当今工业发展中最重要、最有潜力的领域之一。而新型材料又是新能源的基础和保证。本会议主要围绕“清洁…...

网络安全行业的冬天

冬天已经来了,春天还会远吗?2022年10月28日,各个安全大厂相继发布了财报,纵观2022年前三季度9个月,三六零亏了19亿,奇安信亏了11亿,深信服亏了6亿,天融信亏了4亿,安恒亏了…...

PlantUml常用语法

PlantUml常用语法,将从类图、流程图和序列图这三种最常用的图表类型开始。 类图 基础语法 在 PlantUML 中创建类图时,你可以定义类(Class)、接口(Interface)以及它们之间的关系,如继承&#…...

【开源免费】基于SpringBoot+Vue.JS网上服装商城(JAVA毕业设计)

本文项目编号 T 185 ,文末自助获取源码 \color{red}{T185,文末自助获取源码} T185,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

力扣LeetCode: 80 删除有序数组中的重复项Ⅱ

题目: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件…...

Linux之kernel(4)netlink通信

Linux内核(04)之netlink通信 Author: Once Day Date: 2023年1月3日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可查看专栏: Linux内核知识_Once-Day的博客-…...

autMan奥特曼机器人-对接deepseek教程

一、安装插件ChatGPT 符合openai api协议的大模型均可使用此插件,包括chatgpt-4/chatgpt-3.5-turbo,可自定义服务地址和模型,指令:gpt,要求Python3.7以上,使用官方库https://github.com/openai/openai-pyt…...

Java 大视界 -- Java 大数据在智能政务中的应用与服务创新(78)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...

RestTemplate Https 证书访问错误

错误信息 resttemplate I/O error on GET request for “https://21.24.6.6:9443/authn-api/v5/oauth/token”: java.security.cert.CertificateException: No subject alternative names present; nested exception is javax.net.ssl.SSLHandshakeException: java.security.c…...

自动化测试

import os import pyautogui# 将鼠标移动到屏幕坐标 (100, 100) 位置,移动时间为 1 秒 pyautogui.moveTo(100, 100, duration1)# 将鼠标从当前位置向右移动 50 像素,向下移动 50 像素,移动时间为 0.5 秒 pyautogui.moveRel(50, 50, duration0…...

【C编程问题集中营】使用数组指针时容易踩得坑

【C编程问题集中营】使用数组指针时容易踩得坑 文章目录 【C编程问题集中营】使用数组指针时容易踩得坑一、获取数组首地址二、应用场景举例2.1 正常场景2.2 异常场景 三、总结 一、获取数组首地址 一维数组的首地址即数组第一个元素的指针,常用的获取一维数组首地…...

【分布式理论8】分布式调用之:四种IO模型

文章目录 一. 四种IO模型1. 同步阻塞 IO(Blocking IO)2. 同步非阻塞 IO(Non-blocking IO)3. IO 多路复用(IO Multiplexing)4. 异步 IO(Asynchronous IO)在 RPC 中的作用5. 总结 选择…...

MySQL 库建表数量有限制吗?

问:MySQL 库建表数量有限制吗? 答:无限制 官方文档: MySQL has no limit on the number of databases. The underlying file system may have a limit on the number of directories. MySQL has no limit on the number of tabl…...

使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动

button需要有一个外观 外观 大小跟随窗口改变,采用纯色背景、纯色文字 文字 大小跟随窗口改变 button需要获得鼠标消息 掠过 鼠标掠过时 button 出现阴影,鼠标掠过后 button 阴影消失 点击 点击后进入相应事件 拖动 改变图标所在位置 需要在g…...

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点: 1、网站协议-http/https安全差异(抓包) 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP:使用明文传输,数据在传输过程中可以被…...

【Python】元组

个人主页:GUIQU. 归属专栏:Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…...

深度求索与DeepSeek-R1:探索人工智能的新纪元

深度求索与DeepSeek-R1:探索人工智能的新纪元 引言 在当今快速发展的科技领域,尤其是人工智能(AI)方面,每隔一段时间就会出现一款革命性的产品或技术,彻底改变我们对这一领域的认知。2025年初&#xff0c…...

java: framework from BLL、DAL、IDAL、MODEL、Factory using oracle

oracel 21c sql: -- 创建 School 表 CREATE TABLE School (SchoolId CHAR(5) NOT NULL,SchoolName NVARCHAR2(500) NOT NULL,SchoolTelNo VARCHAR2(8) NULL,PRIMARY KEY (SchoolId) );CREATE OR REPLACE PROCEDURE addschool(p_school_id IN CHAR,p_school_name IN NVARCHAR2,p…...

kafka生产端之架构及工作原理

文章目录 整体架构元数据更新 整体架构 消息在真正发往Kafka之前,有可能需要经历拦截器(Interceptor)、序列化器(Serializer)和分区器(Partitioner)等一系列的作用,那么在此之后又会…...

DeepSeek结合Langchain的基本用法

DeepSeek结合Langchain的基本用法 DeepSeek 基于Openai接口规范的Prompt应答Deepseek结合LangchainDeepSeek 基于langchain的结构化返回 DeepSeek 基于Openai接口规范的Prompt应答 首先我们需要先基于pip 安装 pip install openai最开始我们先熟悉如何使用openai的接口规范&a…...

Python与java的区别

一开始接触Python的时候,哔哩视频铺天盖地,看了很多人主讲的,要找适合自己口味的,各种培训机构喜欢在各种平台引流打广告,看了很多家,要么就是一个视频几个小时,长篇大论不讲原理只讲应用&#…...

win10 llamafactory模型微调相关① || Ollama运行微调模型

目录 微调相关 1.微调结果评估 2.模型下载到本地 导出转换,Ollama运行 1.模型转换(非常好的教程!) 2.Ollama 加载GGUF模型文件 微调相关 1.微调结果评估 【06】LLaMA-Factory微调大模型——微调模型评估_llamafactory评估-C…...

全国路网矢量shp数据(分不同类型分省份)

科研练习数据 全国路网矢量shp数据(分不同类型分省份) 有需要的自取 数据格式:shp(线) 数据包含类型:城市主干道、城市次干道、城市快速路、城市支路、高速公路、内部道路、人行道、乡村道路、自行车道路…...

RocketMq之Broker注册流程详解

1.前言 前面我也是写过一些关于broker注册到NameServer里的代码分析,但是总感觉写的比较简单,今天这篇的话,算是重新梳理一篇broker注册到NameServer中的代码,感兴趣的可以看下我前面写的几篇博客: 1.NameServer的主…...

关于精度话题的杂谈

“ 浮点值的存储、运算都可能会带来精度损失,了解精度损失背后的机制原因方便我们更好的了解什么情况下会发生精度损失、什么情况下精度损失较大,以及思考怎么避免或减少精度损失。” 01 杂谈 之前在CSDN上写过《关于float浮点值二进制存储和运算精度损失…...

AD域控粗略了解

一、前提 转眼大四,目前已入职上饶一公司从事运维工程师,这与我之前干的开发有着很大的差异,也学习到了许多新的知识。今天就写下我对于运维工作中常用的功能——域控的理解。 二、为什么要有域控,即域控的作用 首先我们必须要…...

emlog最新跨站脚本漏洞(CNVD-2025-01607、CVE-2024-13140)

EMLOG是一款轻量级开源博客和CMS建站系统,速度快、省资源、易上手,适合各种规模的站点搭建,基于PHPMySQL开发。 国家信息安全漏洞共享平台于2025-01-16公布该程序存在跨站脚本漏洞。 漏洞编号:CNVD-2025-01607、CVE-2024-13140 …...

DeepSeek-r1和O1、O3mini谁更强?

DeepSeek-r1和O1、O3mini谁更强&#xff1f; 题目&#xff1a;编写一个 js 程序&#xff0c;显示一个球在旋转的六边形内弹跳。球应该受到重力和摩擦力的影响&#xff0c;并且必须逼真地从旋转的墙壁上弹起 DeepSeek-r1 <!DOCTYPE html> <html> <body> &l…...

代码随想录_二叉树

二叉树 二叉树的递归遍历 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new ArrayList<Integer&g…...

时序数据库:Influxdb详解

文章目录 一、简介1、简介2、官网 二、部署1、安装2、配置&#xff08;1&#xff09;用户初始化 三、入门&#xff08;Web UI&#xff09;1、加载数据&#xff08;1&#xff09;上传数据文件&#xff08;2&#xff09;代码接入模板 2、管理存储桶&#xff08;1&#xff09;创建…...