无需魔法,单卡4090,Ubuntu20,离线本地部署DeepSeek-r1:32b+dify知识库RAG

环境及安装准备:

系统:Ubuntu 20.04镜像内

GPU:RTX4090

先上结果

step1:镜像内上网代理设置

(需要在线安装时,离线安装可忽略):

下载代理,设置端口号,如7890,和下文端口对应即可

vi /etc/profile 增加

  1. export http_proxy=http://宿主机IP:7890

  2. export https_proxy=http://宿主机IP:7890

source /etc/profile使配置生效,重新进入镜像

网络测试:curl -x http://宿主机IP:7890 https://api.ollama.ai/v1/version

step2:安装Ollama

在线安装可参考

Ubuntu本地部署DeepSeek-R1模型+Dify构建私人专属AI助手 - 知乎 (zhihu.com)

Linux 本地部署 Deepseek-R1 大模型!附保级教程,真正的国际顶流! - 知乎 (zhihu.com)

离线安装可参考

【保姆级教程】手把手教你离线安装Ollama - 知乎 (zhihu.com)

实际上还是在线安装了不少相关命令安装包

安装完后,由于是在镜像内部署

执行ps -p 1 -o comm=

返回tini

没有systemd服务,没法执行systemctl daemon-reload和systemctl start ollama命令,ollama设置自启动的时候会失败,此时手动启动ollama,执行以下命令

# 手动启动
ollama serve

然后另开终端,安装或运行模型

注意Installing ollama to /usr/local,后续相关配置在该文件夹下

step3:安装和部署DeepSeek-r1:1.5b

ollama pull deepseek-r1:1.5b

设置GPU运行:export CUDA_VISIBLE_DEVICES=0

ollama run deepseek-r1:1.5b

 安装nvtop,查看GPU占用情况

step4:安装和部署DeepSeek-r1:32b

模型默认会安装至~/.ollama/models(镜像)或/usr/share/ollama/.ollama/models(宿主机)文件夹下,由于32b模型文件偏大,4-bit都需要约20G,再加运行时缓存占用空间较大,可以选择将模型安装至指定位置,否则镜像太大

4.1指定位置安装

安装前设置自定义模型的下载路径,创建文件夹并设置权限

mkdir -p /home/data/.ollama/models

chown -R ollama:ollama /home/data/.ollama

export OLLAMA_MODELS="/path/to/your/custom/models"或者在vi /etc/systemd/system/ollama.service中设置

#配置OLLAMA的模型存放路径,默认路径是/usr/share/ollama/.ollama/models/
Environment="OLLAMA_MODELS=/home/data/.ollama/models"
ollama pull deepseek-r1:32b  # 模型会下载到指定路径

遇到问题:能访问ollama官网但是pull不成功,通过ollama serve查看初始化参数,发现OLLAMA_MODELS、http_proxy等参数均未设置成功

原因:由于是在容器中配置,采用env | grep OLLAMA名称查看/etc/systemd未生效

ollama参数详解-胎教版_ollama debug-CSDN博客

直接采用命令:

export OLLAMA_MODELS="/opt/data/private/ds/.ollama/models"

export OLLAMA_HOST="0.0.0.0:11434"

export OLLAMA_ORIGIN="*"

export OLLAMA_LOGS="/opt/data/private/ds/.ollama/logs/"

export http_proxy="http://xxx:1234"

ollama pull deepseek-r1:1.5b运行成功,并且模型存放到了指定路径

ollama rm deepseek-r1:1.5b删除模型,换装ollama rm deepseek-r1:32b到指定路径

镜像内指定路径安装这个问题走了很多弯路,浪费了几天终于装好了

总结:多看故障提示信息

env | grep OLLAMA查看配置是否生效

echo $SHELL查看镜像Shell属于/bin/bash

直接在 文件中 vi /etc/profile 或 /etc/bash.bashrc配置OLLAMA_MODELS等初始化信息,这样下次启动时不用重复设置,实测 在/etc/bash.bashrc配置重启后生效/

文件19G,可能ubuntu文件大小不支持,安装了几次都是运行的时候模型没了

20250615,又出现模型没了的情况,重启容器环境解决

20250525成功了一次

还是报错,估计是32b的模型太大,运行产生临时文件啥的

运行ollama run deepseek-r1:32b --verbose查看模型运行情况

total duration:       1.164667675s
load duration:        29.238711ms
prompt eval count:    5 token(s)
prompt eval duration: 125.491673ms
prompt eval rate:     39.84 tokens/s
eval count:           40 token(s)
eval duration:        1.008745514s
eval rate:            39.65 tokens/s

export CUDA_VISIBLE_DEVICES=0设置GPU运行

4.2默认位置安装

可用于宿主机直接安装,没有大小限制时

ollama pull deepseek-r1:32b

时间有点长,模型大小19G

ollama run deepseek-r1:32b

GPU占用还可以,回答还比较快,没有并发访问的情况下

step5:安装dify

Ubuntu本地部署DeepSeek-R1模型+Dify构建私人专属AI助手 - 知乎 (zhihu.com)

step5.1安装docker

Ubuntu 22.04下Docker安装(最全指引)_ubuntu22.04 docker 分区-CSDN博客

检查未安装,可以省略安装前先卸载操作系统默认安装的docker那一步

执行ps -p 1 -o comm=

返回tini,Docker/Kubernetes 容器默认使用 Tini 作为轻量级 init 系统(替代 systemd),tini是一个专为容器设计的极简但功能完备的初始化进程(init)。它主要作用于容器环境中,在 Docker 或其他容器技术中作为PID 1 进程运行,导致执行 systemctl status docker命令时,返回:

root@ds:/opt/data# systemctl status docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

导致Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

deepseek给出了容器内启动 Docker 守护进程(DinD 模式)、通过 Tini 托管 Docker 服务、宿主机 Docker 调用三种方案,并推荐使用挂载宿主机方案:

# 挂载宿主机 Socket 并直接使用(无需容器内运行守护进程) docker run -v /var/run/docker.sock:/var/run/docker.sock -it docker:28.1-cli

(base) root@ds:/opt/data# docker run -v /var/run/docker.sock:/var/run/docker.sock -it docker:28.1-cli
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

仍然返回错误

(base) root@ds:/opt/data# service docker start
 * Starting Docker: docker                                                                                                                  但是马上查看状态就不running了
(base) root@ds:/opt/data# service docker status
 * Docker is not running

原因:采用容器内安装docker,执行命令时:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

将$(lsb_release -cs) 值更换为

lsb_release -cs命令返回的值:
  • Ubuntu 22.04 → jammy

  • Ubuntu 20.04 → focal

  • Ubuntu 18.04 → bionic

我的是focal

然后apt install docker-ce docker-ce-cli containerd.io

报错然后apt-get update,,再次执行apt install docker-ce docker-ce-cli containerd.io

docker安装成功,但是没有运行,和ollama一样,手动启动

dockerd &

还是直接在宿主机服务器直接部署dify吧

直接在宿主机局域网实体机部署dify访问服务器镜像内容器ollama11434端口服务,20250527ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值