使用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
在这里插入图片描述

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

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

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

相关文章

导航守卫router.beforeEach

router.beforeEach 是一个全局前置守卫,在每次路由跳转之前都会触发。 //index.jsrouter.beforeEach((to, from, next) > {// 打印即将要进入的目标路由信息console.log(即将要进入的目标路由信息:, to)// 打印当前正要离开的路由信息console.log(当前正要离开的…

systemverilog的program和module的区别

1. 设计目的 module 硬件建模:用于描述数字电路的结构和行为(如组合逻辑、时序逻辑、连线等)。 层次化设计:支持模块化设计,可嵌套其他模块或接口(interface)。 仿真周期内持续存在&#xff1…

网络编程基础1

七层协议模型和四层协议模型 七层协议模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 四层协议模型:链路层、网络层、传输层、应用层 TCP通信流程 服务器端 (1)创建socket(socket) (2)绑定自己的IP(bind) (3)监听客户端连接(liste…

【C#】一维、二维、三维数组的使用

在C#中,数组是用于存储固定数量相同类型元素的数据结构。根据维度的不同,可以分为一维数组、二维数组(矩阵阵列)、三维数组等。每增加一个维度,数据的组织方式就会变得更加复杂。 一维数组 一维数组是最简单的数组形…

网络安全警示录:.wex勒索病毒的独特特性与应对之道

在数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人用户面临的一大挑战。近年来,.wex勒索病毒以其独特的加密方式和广泛的传播手段,给全球网络安全带来了严重威胁。本文将深入探讨.wex勒索病毒的独特特性&#xff0…

【Golang学习之旅】Go + Redis 的缓存设计与优化

文章目录 前言1. Go与Redis的简介1.1 什么是Redis?1.2 为什么选择Redis? 2. Redis安装于配置2.1 安装Redis2.2 配置Redis 3. Go中使用Redis的基本操作3.1 连接Redis3.2 设置缓存3.3 删除缓存 4. 缓存设计与优化4.1 缓存的粒度设计4.2 缓存失效策略4.3 缓…

【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)

ps.源码放在最后面 设计FIR数字滤波器可以看这里:利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程) 设计IIR滤波器 MATLAB配置 设计步骤 首先在命令行窗口输入"filterDesigner",接着就会跳出以下界面&#xf…

迁移学习 Transfer Learning

迁移学习(Transfer Learning)是什么? 迁移学习是一种机器学习方法,它的核心思想是利用已有模型的知识来帮助新的任务或数据集进行学习,从而减少训练数据的需求、加快训练速度,并提升模型性能。 &#x1f…

makefile 的strip,filter,ifeq,ifneq基础使用

目录 一、strip1.1 语法1.2 示例1.3 使用场景 二、filter2.1 语法2.2 示例2.3 使用 * 和 ? 通配符2.4 结合使用2.5 使用场景 三、ifeq 和 ifneq3.1 ifeq3.1.1 语法3.1.2 示例 3.2 ifneq3.2.1 语法3.2.2 示例 3.3 典型使用场景3.3.1 根据版本控制编译选项:3.3.2 选择不同的源文…

25/2/8 <机器人基础> 阻抗控制

1. 什么是阻抗控制? 阻抗控制旨在通过调节机器人与环境的相互作用,控制其动态行为。阻抗可以理解为一个力和位移之间的关系,涉及力、速度和位置的协同控制。 2. 阻抗控制的基本概念 力控制:根据感测的外力调节机械手的动作。位置…

RKMPP依赖硬件单元

rkmpp(Rockchip Media Process Platform)主要依赖瑞芯微(Rockchip)芯片中的 VPU(Video Process Unit,视频处理单元) 和 RGA(Raster Graphic Acceleration Unit,2D图形加速…

android的ViewBinding的使用

参考: 安卓开发中的ViewBinding使用

C++线程池

使用线程情况比较频繁的地方,由于线程的创建及销毁都会产生对资源的占用及性能的损耗。为了优化性能,提升效率,在这种场景中,就应该使用线程池来处理任务。 线程池创建的关键点: 装载线程的容器,在C中使用…

一周发生AI事件总结(02.08)

本周人工智能领域发生的所有事件: Ilya Sutskever的初创公司正洽谈以约200亿美元估值进行融资:据路透社报道,由前OpenAI首席科学家Ilya Sutskever创立的人工智能初创公司Safe Superintelligence正洽谈以“至少”200亿美元的估值进行融资。该…

FFmpeg(一) 简介

FFmpeg 官网 FFmpeg 下载 ffmpeg-release-essentials.7z ffmpeg-release-full-shared.7z FFmpeg既是一款音视频编解码工具,同时也是一组音社频编解码开发套件 FFmpeg包含 多种音视频编码多种协议的流媒体多种色彩格式转换多种采样率转换多种码率转换多种丰富的…

Android内存性能优化量化指标

在 Android 开发中,对内存性能进行优化至关重要,这有助于提升应用的稳定性和流畅度,避免因内存问题导致的卡顿、崩溃等现象。以下是一些常见的 Android 内存性能优化量化指标: 内存占用指标 堆内存使用量 定义:堆内…

linux 基础知识点之工作队列workqueue

多年前就了解了workqueue着玩意,但理解上就并不是很很深刻,今天重新梳理一下,本文重点的是哪个些现成的demo代码,都是可以直接拿来用的,这就是写这文章的目的和作用,就是为了备份后续工作用到的时候&#x…

【CubeMX+STM32】SD卡 文件系统读写 FatFs+SDIO+DMA

本篇,将使用CubeMXKeil,创建一个SD卡的 FatFSSDIODMA 文件系统读写工程。 目录 一、简述 二、CubeMX 配置 FatFSSDIO DMA 三、Keil 编辑代码 四、实验效果 实现效果,如下图: 一、简述 上两篇,已循序渐进讲解了SD、…

docker环境下部署face-search开源人脸识别模型

由于我们是直接将face-search部署在docker容器中的,所以,在部署之前一定要检查一下自己的docker环境,要不然部署过程中会出现各种各样的问题 我这里的docker环境是 一、安装docker环境 如果docker版本比较低或者docker-compose的版本比较低的情况下,部署的时候docker的yml…

【Android开发AI实战】选择目标跟踪基于opencv实现——运动跟踪

文章目录 【Android 开发 AI 实战】选择目标跟踪基于 opencv 实现 —— 运动跟踪一、引言二、Android 开发与 AI 的融合趋势三、OpenCV 简介四、运动跟踪原理(一)光流法(二)卡尔曼滤波(三)粒子滤波 五、基于…