一键部署私人 LLM:Ollama + Docker 极简指南
10 分钟本地跑起大模型,支持 Windows / Mac / Linux,无需代码基础
前言
想用 GPT-4 级别的大模型,但不想每次都担心隐私泄露、API 费用爆表?
2026 年,在自己电脑上本地跑一个媲美 GPT-3.5 的大模型,已经不是遥不可及的事情了。本文手把手带你用 Ollama + Docker 两种方式,10 分钟内把大模型跑在本地,全程离线,数据不出门。
为什么选择本地部署?
| 维度 | 云端 API | 本地部署 |
|---|---|---|
| 隐私 | 数据上传第三方服务器 | 完全本地,数据不出门 |
| 费用 | 按 Token 计费,长文本昂贵 | 一次性硬件投入,无运行成本 |
| 响应速度 | 受网络延迟影响 | 本机推理,延迟极低 |
| 稳定性 | 依赖服务商可用性 | 完全自控,断网也能用 |
| 定制化 | 受限于 API 接口 | 可微调、可 RAG 集成 |
核心需求:
- 至少 8GB 内存(16GB 推荐)
- 支持 7B 以下模型不需要独立 GPU
方案一:Ollama(推荐新手)
Ollama 是目前最受欢迎的本地 LLM 运行框架,只需三步就能跑起来。
1. 安装 Ollama
macOS / Linux:
bash
curl -fsSL https://ollama.com/install.sh | sh
Windows:
直接下载安装包:https://ollama.com/download
安装完成后,Ollama 会自动在后台启动服务,监听 http://localhost:11434。
2. 拉取并运行模型
bash
# 运行 Qwen2.5-7B(阿里出品,中文效果一流)
ollama run qwen2.5:7b
# 运行 DeepSeek-R1(推理能力强)
ollama run deepseek-r1:7b
# 运行 Llama 3.2(Meta 官方,英文最强)
ollama run llama3.2
# 运行 Phi-4-mini(微软出品,仅 3.8B,速度快)
ollama run phi4-mini
首次运行会自动下载模型文件,下载完成后直接进入交互界面:
>>> 你好,请介绍一下自己
我是由阿里巴巴开发的 Qwen2.5 大语言模型...
3. 常用模型推荐
| 模型 | 大小 | 显存需求 | 适合场景 |
|---|---|---|---|
qwen2.5:7b |
4.7GB | 8GB RAM | 中文对话、代码生成 |
deepseek-r1:7b |
4.7GB | 8GB RAM | 数学推理、逻辑分析 |
llama3.2:3b |
2.0GB | 4GB RAM | 英文对话、快速响应 |
phi4-mini |
2.5GB | 6GB RAM | 通用任务、速度优先 |
qwen2.5:14b |
9.0GB | 16GB RAM | 高质量输出 |
deepseek-r1:32b |
19GB | 24GB RAM(GPU) | 专业推理 |
4. Ollama 常用命令
bash
ollama list # 查看已下载的模型
ollama ps # 查看正在运行的模型
ollama rm qwen2.5:7b # 删除模型
ollama pull llama3.2 # 预下载模型(不启动对话)
ollama serve # 手动启动 Ollama 服务
5. 通过 API 调用(兼容 OpenAI 格式)
Ollama 提供了 OpenAI 兼容 API,可直接替换大多数 SDK:
python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # 随便填,Ollama 不校验
)
response = client.chat.completions.create(
model="qwen2.5:7b",
messages=[
{"role": "user", "content": "用 Python 写一个快速排序"}
]
)
print(response.choices[0].message.content)
也可以用 curl 直接调用:
bash
curl http://localhost:11434/api/chat -d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'
方案二:Docker 部署 Ollama(生产推荐)
如果你需要在服务器上部署,或者想要更好的资源隔离,Docker 方式更合适。
1. 安装 Docker
bash
# macOS(推荐 Docker Desktop)
brew install --cask docker
# Linux(Ubuntu/Debian)
curl -fsSL https://get.docker.com | sh
# Windows
# 下载 Docker Desktop:https://www.docker.com/products/docker-desktop/
2. 启动 Ollama 容器
CPU 版本(无 GPU 也能跑):
bash
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
NVIDIA GPU 加速版本:
bash
# 先安装 nvidia-container-toolkit
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
# 启动带 GPU 的容器
docker run -d \
--name ollama \
--gpus all \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
Apple Silicon (M1/M2/M3) 加速版本:
bash
docker run -d \
--name ollama \
-p 11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama
⚠️ Apple Silicon 请直接安装原生 Ollama,性能比 Docker 版本更好。
3. 在容器内拉取模型
bash
# 在容器内执行 pull 命令
docker exec -it ollama ollama pull qwen2.5:7b
# 或者通过 API 触发下载
curl http://localhost:11434/api/pull -d '{"name": "qwen2.5:7b"}'
4. docker-compose 部署(推荐)
创建 docker-compose.yml:
yaml
version: '3.8'
services:
ollama:
image: ollama/ollama
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
# 如果有 NVIDIA GPU,取消注释:
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open_webui_data:/app/backend/data
depends_on:
- ollama
volumes:
ollama_data:
open_webui_data:
启动:
bash
docker-compose up -d
# 查看日志
docker-compose logs -f
# 进入容器拉取模型
docker exec -it ollama ollama pull qwen2.5:7b
然后访问 http://localhost:3000,就能看到一个 ChatGPT 风格的 Web 界面!
加 Web 界面:Open WebUI
光有命令行太枯燥?Open WebUI 提供了一个完整的 ChatGPT 风格界面,支持多模型切换、对话历史、文件上传等功能。
直接安装(如果已有 Ollama)
bash
docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open_webui_data:/app/backend/data \
--restart always \
ghcr.io/open-webui/open-webui:main
访问 http://localhost:3000,首次需要注册账号(纯本地,数据存在自己电脑)。
功能亮点:
- ✅ 支持多模型同时对话对比
- ✅ 支持上传 PDF/图片/文档
- ✅ 支持语音输入输出(TTS/STT)
- ✅ 支持 Prompt 模板管理
- ✅ 完整对话历史记录
- ✅ 可接入 OpenAI API(本地 + 云端混用)
进阶:集成到 Python 项目
python
import requests
def chat_with_local_llm(prompt: str, model: str = "qwen2.5:7b") -> str:
"""调用本地 Ollama 模型"""
response = requests.post(
"http://localhost:11434/api/chat",
json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False
}
)
return response.json()["message"]["content"]
# 使用示例
result = chat_with_local_llm("请用 Python 实现一个单例模式")
print(result)
与 LangChain 集成:
python
from langchain_ollama import ChatOllama
llm = ChatOllama(model="qwen2.5:7b", temperature=0.7)
response = llm.invoke("介绍一下 RAG 技术")
print(response.content)
与 LlamaIndex 集成:
python
from llama_index.llms.ollama import Ollama
llm = Ollama(model="qwen2.5:7b", request_timeout=120.0)
response = llm.complete("什么是向量数据库?")
print(response.text)
性能调优技巧
1. 上下文长度配置
bash
# 设置更长的上下文(默认 2048)
ollama run qwen2.5:7b --num-ctx 8192
或者创建自定义 Modelfile:
FROM qwen2.5:7b
PARAMETER num_ctx 8192
PARAMETER temperature 0.7
SYSTEM "你是一个专业的编程助手,请用中文回答问题。"
bash
ollama create my-qwen -f Modelfile
ollama run my-qwen
2. 并发推理优化
bash
# 设置并发请求数(默认 1)
OLLAMA_NUM_PARALLEL=4 ollama serve
# 模型预加载(保持模型在内存中)
OLLAMA_KEEP_ALIVE=24h ollama serve
3. GPU 分层加速
当显存不足以完全加载模型时,可以设置部分层在 GPU 运行:
bash
# 通过 API 设置 GPU 层数
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "你好",
"options": {"num_gpu": 20}
}'
常见问题排查
Q:下载速度太慢怎么办?
bash
# 设置镜像加速(国内推荐)
export OLLAMA_MODELS_REGISTRY="https://registry.ollama.ai"
# 或者手动指定代理
export HTTPS_PROXY=http://your-proxy:port
ollama pull qwen2.5:7b
Q:显存不足 / 内存不足?
- 选择更小的模型,如
llama3.2:3b(2GB)或phi4-mini(2.5GB) - 使用
Q4_K_M量化版本(Ollama 默认已使用量化) - 关闭其他占内存的程序
Q:Windows 上运行很慢?
- 推荐安装 WSL2(Windows Subsystem for Linux),在 Linux 环境下运行
- 确保 GPU 驱动最新,安装 CUDA(NVIDIA)或使用 DirectML(AMD/Intel)
Q:如何查看推理速度?
bash
# 查看详细推理信息(包含速度)
curl http://localhost:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "你好",
"stream": false
}' | python3 -m json.tool
返回字段中 eval_rate 表示每秒生成的 Token 数。
总结
| 方式 | 适合人群 | 优点 | 缺点 |
|---|---|---|---|
| Ollama 原生 | 个人用户、开发者 | 安装简单,上手快 | 服务管理相对简单 |
| Docker + Ollama | 服务器部署、团队使用 | 隔离性好,易于管理 | 需要了解 Docker |
| Ollama + Open WebUI | 非技术用户 | 图形界面,功能丰富 | 占用资源更多 |
推荐路线:
- 新手 :直接安装 Ollama →
ollama run qwen2.5:7b→ 10 分钟跑起来 - 进阶:加上 Open WebUI → 拥有本地 ChatGPT
- 开发者:Docker Compose 一键部署 → 集成到自己项目
本地 LLM 的时代已经来了。你的数据,应该由你自己掌控。
系列文章 :AI & 大模型技术实战系列
上一篇:本地跑 LLM 哪家强?Llama / Qwen / DeepSeek 全方位对比
下一篇:RAG 2026 全面升级:从 Naive RAG 到 Agentic RAG
如果这篇文章对你有帮助,欢迎点赞收藏!有问题欢迎评论区交流~