本文將手把手教您使用Ollama+Docker+OpenWebUI三件套在本地部署DeepSeek-R1大語言模型,實現私有化AI服務搭建。
一、環境準備
1.1 硬件要求
CPU:推薦Intel i7及以上(需支持AVX2指令集)
內存:最低16GB,推薦32GB+ (其實內存8GB也可以)
顯卡:非必需,但使用NVIDIA GPU可加速(需CUDA 11.8+)
存儲:至少20GB可用空間
1.2 系統要求
操作系統:Linux(Ubuntu 22.04推薦)/ Windows WSL2 / macOS 12+
Docker版本:24.0+
Python版本:3.10+
二、安裝部署流程
2.1 下載安裝ollama https://ollama.com/
Ollama 是一個用于運行和管理 AI 模型的開源平臺,特別是在本地環境中使用 AI 模型。它旨在通過簡化本地部署和管理 AI 模型的過程,使開發者能夠更容易地在自己的機器上運行各種大型語言模型(LLMs)。
2.2檢查ollama是否安裝成功
cmd命令,然后輸入ollama如果出現以下內容則表示ollama安裝成功
ollama
2.3 根據自己的電腦情況選擇模型,這里為了快速演示選擇了一個最小的模型1.5b的,點擊右邊復制命令。
這里注意,如果下載速度變慢了可以ctrl+c停止后重新輸入命令后回車,速度會變快
ollama run deepseek-r1:1.5b
2.4安裝完成效果圖
使用命令:到這里基本的就算完成了就可以使用了
ollama run deepseek-r1:1.5b
2.5現在來安裝docker,這里我們后面會使用docker來安裝openwebui
進入docker官網 https://www.docker.com/ 進行下載。這里根據自己的系統下載安裝。
安裝成功后輸入命令,如果出現版本信息表示安裝成功
docker --version
2.6拉取OpenWebUI鏡像
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui-new --restart always ghcr.io/open-webui/open-webui:main
2.7 拉取OpenWebUI可能遇到的一些問題的排查方式
- 檢查 Docker 鏡像
確保你已經成功拉取了 open-webui 鏡像。你可以通過以下命令檢查鏡像是否存在:
docker images
如果你看到 ghcr.io/open-webui/open-webui:main 鏡像列表中,那么說明鏡像已經成功拉取
2. 查看日志(可選)
如果容器運行有問題,可以通過以下命令查看容器的日志:
docker logs open-webui
- 停止和刪除容器
停止容器
docker stop open-webui
刪除容器
docker rm open-webui
確認容器是否運行
首先確認容器已經成功啟動。你可以使用以下命令查看容器的狀態:
docker ps
2.8 最終效果圖
如果關機后下次開機還想使用的話,需要打開docker desktop 即可。然后訪問上次配置的地址。這里我配置的是localhost:3000即可通過openwebui來進行使用了。
數據持久化
檢查當前 OpenWebUI 的部署方式
首先,確認你是如何部署 OpenWebUI 的。如果你是通過命令行使用 Docker 啟動的 OpenWebUI,那么它很可能并沒有配置持久化存儲(例如數據掛載到本地目錄)。
停止當前 OpenWebUI 容器
如果你已經通過 Docker 啟動了 OpenWebUI,首先停止當前正在運行的容器:
docker ps # 查看正在運行的容器
docker stop <容器ID或容器名稱> # 停止當前的 OpenWebUI 容器
docker rm <容器ID或容器名稱> # 刪除容器
創建一個 docker-compose.yml 文件 。這里我是放在D盤的
創建一個專門的目錄用于管理 OpenWebUI 容器。
假設你在用戶目錄下創建一個新目錄:openweui
然后在該目錄下創建 docker-compose.yml 文件:
配置 docker-compose.yml 文件
version: '3'
services:openwebui:image: ghcr.io/open-webui/open-webui:main # 使用最新的 OpenWebUI 鏡像container_name: openwebuiports:- "3000:3000" # 將容器的3000端口映射到本地的3000端口environment:- PORT=3000 # 配置 OpenWebUI 啟動時監聽的端口volumes:- ./data:/app/data # 將本地的 ./data 文件夾掛載到容器的 /app/data 文件夾restart: always # 容器異常退出時自動重啟
這將 OpenWebUI 配置為通過 localhost:3000 進行訪問。
同時,容器內部的 /app/data 目錄會掛載到本地的 ./data 目錄,確保數據持久化存儲。
啟動 OpenWebUI 容器
在創建并保存好 docker-compose.yml 文件后,運行以下命令來啟動 OpenWebUI 容器:
docker-compose up -d
訪問 OpenWebUI
容器啟動后,你可以通過瀏覽器訪問 http://localhost:3000 來查看 OpenWebUI 是否正常運行。
驗證數據是否持久化
在容器運行一段時間后,嘗試在 OpenWebUI 中進行一些操作(例如上傳文件或保存數據),然后停止容器并重啟。檢查本地的 ./data 目錄,確保數據文件保存到本地磁盤。
docker-compose down # 停止并刪除容器
docker-compose up -d # 重新啟動容器
重新訪問 localhost:3000,確認數據是否仍然存在。
總結
通過 docker-compose 配置 OpenWebUI,確保數據存儲在本地。
使用 volumes 將容器內的 /app/data 目錄掛載到本地的 ./data 目錄,以保證數據持久化。
通過 localhost:3000 訪問 OpenWebUI,并在容器重啟后驗證數據是否丟失。
這樣,你就能夠在本地通過 Docker 部署 OpenWebUI 并保持數據的持久化了。