在本指南中,我將詳細介紹如何在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應用開發環境,運行大語言模型并基于它們構建應用,即使在離線環境中也能高效運作。