在本指南中,我将详细介绍如何在CPU服务器上安装和配置Ollama模型服务和Dify平台,以及如何利用Docker实现这些服务的高效部署和迁移。本文分为三大部分:Ollama部署、Dify环境配置和Docker环境管理,适合需要在本地或私有环境中运行AI服务的开发者和运维人员参考。
文章目录
- 一、Ollama部署
- 1.1 二进制文件安装方法
- 1.2 Docker安装方法(推荐)
- 二、Dify部署与配置
- 2.1 Dify项目打包与迁移
- 2.2 Dify与Ollama集成
- 2.3 Dify数据持久化
- 三、Docker环境管理
- 3.1 Docker Compose安装
- 3.2 Docker Compose命令更新
- 3.3 完整的项目迁移流程
- 总结
🎉进入云端运维专栏 | 🚀查看更多专栏内容
一、Ollama部署
Ollama是一个优秀的开源工具,可以帮助我们在本地或服务器上轻松运行各种大语言模型。以下介绍两种安装方法及其优缺点。
1.1 二进制文件安装方法
按照ollama的Linux安装教程,我们可以通过以下步骤安装Ollama:
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
命令解析:
第一条命令使用curl
下载Ollama的压缩包:
-L
参数允许curl跟随HTTP重定向- 将下载的文件保存为
ollama-linux-amd64.tgz
第二条命令解压文件到系统目录:
sudo
使用管理员权限tar
是Linux的归档处理工具-C /usr
指定解压目标为/usr
目录-x
表示解压模式-z
表示处理gzip压缩格式-f
指定文件名
解压完成后,理论上可以直接运行ollama serve
启动服务,但在实际操作中可能会遇到错误:
ollama serve
如下图所示,执行命令后出现错误提示:
此类错误可能是由系统依赖项缺失或权限问题导致的,解决起来可能比较复杂。
1.2 Docker安装方法(推荐)
考虑到二进制安装的复杂性,我们可以转向使用Docker安装Ollama,这种方式更加可靠和一致。参考ollama的docker安装教程,执行以下命令:
docker run -d -v /root/models:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:0.5.3
命令详解:
docker run
:创建并启动容器-d
:后台运行容器-v /root/models:/root/.ollama
:数据卷挂载,将主机目录映射到容器内部,用于持久化存储模型文件-p 11434:11434
:端口映射,使Ollama服务可通过主机11434端口访问--name ollama
:容器命名为"ollama"ollama/ollama:0.5.3
:指定使用的镜像及版本
也可以使用不同的挂载路径:
docker run -v /usr/share/ollama/.ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:0.5.3
使用Docker部署的优势:
- 减少了依赖项冲突
- 环境隔离,不影响主机系统
- 便于版本管理和迁移
- 一致的运行环境,减少"在我机器上能运行"的问题
二、Dify部署与配置
Dify是一个强大的LLM应用开发平台,支持快速构建基于大语言模型的应用。考虑到Dify的Docker很多,下载很慢。我们可以基于别的服务器上可以用的Dify,打包其Docker环境,实现Dify的离线高效部署。
2.1 Dify项目打包与迁移
为了实现Dify项目的离线部署,我们需要先打包现有项目的所有Docker镜像,进入Dify的docker目录下,执行下面的命令:
docker-compose images | awk 'FNR > 1 {print $2":"$3}' | sort -u | xargs docker save -o all_images.tar
这条命令的作用是将当前Dify项目中使用的所有Docker镜像打包成一个单一的tar文件,以便于离线环境下的安装与迁移。命令细节解析:
docker-compose images
:列出当前Compose项目中使用的所有镜像awk 'FNR > 1 {print $2":"$3}'
:提取每个镜像的名称和标签sort -u
:排序并去除重复项xargs docker save -o all_images.tar
:将所有镜像保存到一个tar文件中
2.2 Dify与Ollama集成
Dify平台需要与Ollama服务进行集成才能正常工作。一般来说,我们需要在Dify的配置中指定Ollama服务的地址:
- 同一主机上:可以使用
http://localhost:11434
或Docker网络名称http://ollama:11434
- 不同主机上:使用目标服务器IP,如
http://192.168.1.100:11434
2.3 Dify数据持久化
与Ollama类似,Dify也需要配置数据持久化,以确保用户创建的应用、提示词库和配置信息不会因容器重启而丢失。这通常通过Docker卷挂载实现,例如:
-v /path/to/dify/data:/app/data
-v /path/to/dify/uploads:/app/uploads
三、Docker环境管理
Docker是实现Ollama和Dify高效部署的关键工具,掌握Docker的基本操作和环境管理对于成功部署至关重要。
3.1 Docker Compose安装
如果您的系统中尚未安装Docker Compose,可以通过以下命令进行安装:
curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o docker-compose-linux-x86_64
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
这组命令的作用是:
- 下载与当前系统架构匹配的Docker Compose二进制文件
- 将文件复制到系统PATH路径中
- 添加执行权限
执行完成后,可以验证安装结果:
3.2 Docker Compose命令更新
需要注意的是,Docker的新版本已将Docker Compose集成到Docker CLI中,命令格式有所变化:
- 旧版命令:
docker-compose
(带连字符) - 新版命令:
docker compose
(无连字符)
对应的,更新后的打包命令应为:
docker compose images | awk 'FNR > 1 {print $2":"$3}' | sort -u | xargs docker save -o all_images.tar
您可以通过docker compose version
或docker --version
检查系统中的Docker版本和Compose支持情况。
3.3 完整的项目迁移流程
使用Docker进行项目迁移的完整流程包括三个主要步骤:
-
打包阶段(源服务器上):
mkdir project-backup cp docker-compose.yml .env config/* project-backup/ mv all_images.tar project-backup/ tar -czvf project-backup.tar.gz project-backup
-
传输阶段:
将project-backup.tar.gz
传输到目标服务器(可以使用scp、rsync等工具) -
部署阶段(目标服务器上):
tar -xzvf project-backup.tar.gz cd project-backup docker load -i all_images.tar docker-compose up -d
这种方法的优势在于可以实现完全离线的部署,不需要目标服务器具有互联网连接,非常适合在隔离网络或有严格安全要求的环境中部署Ollama和Dify项目。
总结
在CPU服务器上成功部署Ollama和Dify环境需要掌握以下关键要点:
- Ollama部署:优先考虑Docker安装方式,确保正确配置数据卷挂载和端口映射
- Dify配置:实现与Ollama的正确集成,确保数据持久化
- Docker管理:掌握Docker Compose的使用,熟悉项目的打包、迁移和部署流程
通过这些步骤,您可以在标准CPU服务器上构建一个完整的AI应用开发环境,运行大语言模型并基于它们构建应用,即使在离线环境中也能高效运作。