三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Ubuntu Ollama 搭建私有大模型部署 垂直投喂RAG

Ubuntu Ollama 搭建私有大模型部署 垂直投喂RAG

现阶段各大厂商免费模型已成熟,可以接入着手研究大模型应用。轮子都造好了我们就拿来用了。但是个人要对于大模型学习使用成本小高,那么我们先从基础走起。

PS:我用的是用户安装,这个会有坑安装用root用户能规避一些问题。

一、环境与硬件配置

基础部署(仅RAG/推理):4核CPU、8G内存、无显卡也可运行

操作系统:Ubuntu 20.04 / 22.04 / 24.04(推荐22.04 LTS)

运行方式:全程离线私有化部署,数据不出服务器

网络:内网部署,可配置端口放行,支持局域网访问

二、前期初始化

# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础依赖
sudo apt install -y curl wget git vim python3-pip python3-venv build-essential
# 开启开机自启依赖
sudo apt install -y systemd=
# 清理无用依赖
sudo apt autoremove -y

三、安装 Docker + Compose

# 官方一键脚本(Ubuntu 22.04/24.04)
curl -fsSL https://get.docker.com | sudo sh

# 当前用户加入 docker 组
sudo usermod -aG docker $USER
newgrp docker

# 验证(需 compose ≥ 2.24.0,Dify 硬性要求)
docker --version
docker compose version

如果curl -fsSL https://get.docker.com | sudo sh安装不上切换国内镜像

先确认是不是只有「只有 Docker 官方源有问题」

# 基础网络

ping -c 3 8.8.8.8

ping -c 3 baidu.com

# 对比测试

curl -I https://www.baidu.com

curl -I https://get.docker.com

curl -v https://get.docker.com 2>&1 | tail -20

  • baidu.com正常、get.docker.com失败 → 用国内镜像装 Docker(推荐)
  • 若所有 HTTPS 都失败 → 检查 VM 网络模式、DNS、代理
  • ping 8.8.8.8都不通 → VM 网络本身有问题(NAT/桥接/网关)

# 1) 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2) 添加 Docker GPG(阿里云镜像)
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3) 添加 Docker apt 源(按你的 Ubuntu 版本选一个)
# Ubuntu 22.04:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

注意:# Ubuntu 24.04 把 jammy 改成 noble:

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

# 4) 安装
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 5) 验证
docker --version
docker compose version # 需要 >= 2.24.0

若阿里云 GPG 也curl (35),可换清华源:

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 22.04 示例
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list

同样注意:# Ubuntu 24.04 把 jammy 改成 noble:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list

成功:

装完 Docker 后还要配镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

若 docker compose version < 2.24.0,升级 compose 插件:

sudo apt install -y docker-compose-plugin

四、Ollama 服务部署(核心推理引擎)

一键安装ollama

curl -fsSL https://ollama.com/install.sh | sh

非常慢

如果网络不行就需要使用魔法下载

Releases · ollama/ollama · GitHub

选择相应版本

传入到Ubuntu以后解压

安装zstd

sudo apt update

sudo apt install zstd -y

1、解压tar两种解压方式我使用的是第一种zstd解压管道给tar

1、zstd 解压管道给 tar(推荐,不生成中间文件)

zstd -d -c ollama-linux-amd64.tar.zst | sudo tar -xvf - -C /

  • -c:输出到 stdout 管道
  • -C /:直接把二进制释放到根目录,会把ollama二进制放到/usr/local/bin/,服务文件放到/etc/systemd/system/ollama.service,和官方脚本安装路径完全一致
2、先解压出 tar 文件,再 tar 解包

zstd -d ollama-linux-amd64.tar.zst

# 得到 ollama-linux-amd64.tar

sudo tar -xvf ollama-linux-amd64.tar -C /

2、注册 systemd 服务、启动 ollama

解压完成后,systemd 单元文件已经释放到/etc/systemd/system/ollama.service

# 重载systemd识别新服务

sudo systemctl daemon-reload

# 设置开机自启并启动

sudo systemctl enable --now ollama

# 查看运行状态

sudo systemctl status ollama

如果运行状态不对

校验文件完整性

ls -lh /usr/local/bin/ollama

正常二进制大小约140M 左右。如果只有几 MB,说明压缩包下载残缺,必须重新下载。

删除损坏版本

sudo systemctl stop ollama

sudo systemctl disable ollama

sudo rm -rf /usr/local/bin/ollama /usr/local/lib/ollama

rm -f ~/ollama-linux-amd64.tgz

我这里又重新下载了

这里看有38M

sudo nano /etc/systemd/system/ollama.service

重新解压以后ollama 安装在?/bin/ollama目录下面

/bin/ollama serve

curl http://127.0.0.1:11434/api/tags

输出结果可以看到已经集成了千问模型 qwen3.5:4b

还可以换小模型

#小对话模型

ollama pull qwen2:0.5b

# Embedding 多语言含中文

ollama pull bge-m3

对话模型:qwen2.5:1.8b
向量嵌入模型:bge‑small‑zh
模型参数:温度0.1‑0.2
知识库切片大小建议:600token,重叠 100,不要给小模型塞太长上下文。

测试一下是否成功

ollama run qwen2.5:1.8b

curl http://127.0.0.1:11434/api/embeddings -d '{ "model":"bge-small-zh", "prompt":"测试RAG文档" }'

切换root用户

sudo -i

如果本机可以访问外网不可以访问 修改 ollama systemd 配置,允许外网 / 局域网访问

vi /etc/systemd/system/ollama.service

[Service]段添加环境变量:

[Service]

Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_HTTP_CLIENT_FORCE_HTTP1=true"

保存退出,重载 systemd 并重启 ollama

systemctl daemon-reload

systemctl restart ollama

3、如果不行可以安装docker ollama

# 如果没装docker,先安装docker
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker

# 启动ollama容器,持久化模型数据,端口11434对外
docker run -d \
--name ollama \
--restart always \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama

测试是否成功

curl http://127.0.0.1:11434/api/tags

返回带json串就成功

容器内使用 ollama 命令示例

# 拉取模型

docker exec -it ollama ollama pull qwen3.5:4b

# 运行对话

docker exec -it ollama ollama run qwen3.5:4b

环境变量 OLLAMA_HOST=0.0.0.0 在官方 docker 镜像内部已经默认开启,外部机器可以访问 11434。

五、部署 Dify

# 1) 克隆固定版本(避免漂移)
cd ~
git clone https://github.com/langgenius/dify.git --branch 1.7.1 --depth 1

如果上面的不行用

git clone --branch 1.7.1 --depth 1 https://mirror.ghproxy.com/https://github.com/langgenius/dify.git

再不行用

git clone --branch 1.7.1 --depth 1 https://gh-proxy.com/https://github.com/langgenius/dify.git

如果都不行用最后方案 下载压缩包解压

--------------------------------------------------------------------------------------------------------------------------------

wget https://mirror.ghproxy.com/https://github.com/langgenius/dify/archive/refs/tags/v1.7.1.zip -O dify-v1.7.1.zip

unzip dify-v1.7.1.zip

mv dify-1.7.1 dify

--------------------------------------------------------------------------------------------------------------------------------
cd dify/docker

ls
cp .env.example .env

# 2) 拉取并启动
docker compose pull

拉取镜像
sudo chown -R 1000:1000 ./volumes # 避免 plugin_daemon 权限问题

启动镜像 -d是后台启动
docker compose up -d

# 3) 检查状态
docker compose ps # 全部 Up / healthy

.env调整(在线 VM 可选)

EXPOSE_NGINX_PORT=80
# 内网部署可关闭遥测(可选)
# SENTRY_DSN=

这样基本就配置完毕,然后就是进入dify设置。刚开始让输入用户名密码等用户基本设置。设置完的界面这样。剩下的就开始配置咱们的LLM 了。

点击右上角的头像。我的是K那个蓝色的。然后点击设置。

在模型供应商里面找到ollama安装。

← 返回列表