一键部署私人 LLM:Ollama + Docker 极简指南

一键部署私人 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 非技术用户 图形界面,功能丰富 占用资源更多

推荐路线:

  1. 新手 :直接安装 Ollama → ollama run qwen2.5:7b → 10 分钟跑起来
  2. 进阶:加上 Open WebUI → 拥有本地 ChatGPT
  3. 开发者:Docker Compose 一键部署 → 集成到自己项目

本地 LLM 的时代已经来了。你的数据,应该由你自己掌控。


系列文章 :AI & 大模型技术实战系列

上一篇:本地跑 LLM 哪家强?Llama / Qwen / DeepSeek 全方位对比

下一篇:RAG 2026 全面升级:从 Naive RAG 到 Agentic RAG

如果这篇文章对你有帮助,欢迎点赞收藏!有问题欢迎评论区交流~

相关推荐
怎么没有名字注册了啊7 小时前
fedora 换源教程
linux·运维·服务器
爱莉希雅&&&7 小时前
Zabbix监控linux服务器和Windows服务器
linux·运维·服务器·zabbix·监控
小小测试开发7 小时前
加州拟将 Linux 从年龄验证法中豁免:一场开源社区的胜利与反思
linux·运维·开源
Sisphusssss8 小时前
Ubuntu 装英伟达显卡驱动
linux·运维·ubuntu
龙骑士baby8 小时前
重建 AI 认知第 3 篇:Prompt Engineering——怎么让 AI 听懂你的话
ai·大模型·llm·prompt
TechMasterPlus8 小时前
浏览器自动化实战:从 Playwright 录制回放到智能浏览器自动化技术解析
运维·自动化
城管不管8 小时前
什么是Prompt?
android·java·数据库·语言模型·llm·prompt
猫先生Mr.Mao8 小时前
一文梳理主流 LLM 架构技术演进
人工智能·架构·大模型·llm·transformer
蜜蜜不吃糖8 小时前
ipmitools获取windows带外信息并修改密码
运维·服务器