跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

本地大语言模型部署实战:Ollama + Open WebUI

综述由AI生成了基于 Docker 在本地部署 Ollama 与 Open WebUI 的完整流程。内容包括环境准备、Ollama 安装与模型拉取、Open WebUI 容器化部署、Docker Compose 组合管理、GPU 加速配置及 Python API 调用示例。通过该方案可实现离线运行的私有化大语言模型服务。

宁静发布于 2026/4/6更新于 2026/5/2229 浏览

技术栈

  • Ollama(模型运行)
  • Open WebUI(Web 界面)
  • DeepSeek/LLaMA(大模型)

适用场景:

  • 个人开发者本地调试 AI 应用
  • 企业内网私有化部署,数据不出网
  • 学习研究大模型原理
  • 搭建专属 AI 助手

一、架构介绍

组件作用端口
Ollama大模型运行引擎,负责模型加载和推理11434
Open WebUI类 ChatGPT 的 Web 界面,提供对话功能8080
模型文件DeepSeek、LLaMA 等大语言模型-

二、环境准备

2.1 硬件要求

模型大小最低内存推荐内存GPU(可选)
7B 参数8GB16GB6GB 显存
14B 参数16GB32GB12GB 显存
70B 参数64GB128GB48GB 显存

2.2 软件要求

# 检查 Docker 是否安装
docker --version
# 如果未安装,请先安装 Docker
# Windows/Mac: 下载 Docker Desktop
# Ubuntu: sudo apt install docker.io docker-compose

三、Ollama 部署(核心组件)

3.1 方式一:直接安装(推荐新手)

Windows 安装:

  1. 访问官网下载安装包:https://ollama.com/download
  2. 双击安装,一路下一步
  3. 打开命令行验证安装
# 验证安装
ollama --version
# 输出示例
ollama version is 0.1.27

Linux/macOS 安装:

# 一键安装脚本
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装
ollama --version

3.2 方式二:Docker 部署(推荐生产环境)

# 拉取 Ollama 镜像
docker pull ollama/ollama:latest
# 创建数据目录(持久化模型文件)
mkdir -p ~/ollama-data
# 启动 Ollama 容器
docker run -d \
  --name ollama \
  --restart unless-stopped \
  -p 11434:11434 \
  -v ~/ollama-data:/root/.ollama \
  ollama/ollama:latest
# 查看运行状态
docker ps | grep ollama
# 输出示例
# abc123 ollama/ollama Up 2 minutes 0.0.0.0:11434->11434/tcp ollama

3.3 验证 Ollama 是否正常运行

# 测试 API 是否可用
curl http://localhost:11434/api/tags
# 如果返回 JSON 格式的模型列表,说明运行正常
# {"models":[]}

四、下载并运行第一个模型

4.1 选择合适的模型

模型名称参数量文件大小特点
llama3.2:3b3B~2GB轻量级,适合低配机器
llama3.1:8b8B~4.7GB平衡性能与资源
deepseek-r1:7b7B~4GB中文能力强,推理优秀
qwen2.5:7b7B~4.5GB阿里开源,中文友好
mistral:7b7B~4GB欧洲开源模型,性能优秀

4.2 下载模型

# 下载 DeepSeek R1 7B 模型(推荐中文用户)
ollama pull deepseek-r1:7b
# 下载 LLaMA 3.1 8B 模型
ollama pull llama3.1:8b
# 下载 Qwen 2.5 7B 模型
ollama pull qwen2.5:7b
# 下载过程示例
# pulling manifest
# pulling 6a4b3c2d... 100% |████████████| 4.0 GB / 4.0 GB
# verifying sha256 digest
# writing manifest
# success

4.3 命令行对话测试

# 运行模型进入对话模式
ollama run deepseek-r1:7b
# 对话示例
>>> 你好,请用中文介绍一下你自己
我是 DeepSeek,一个由深度求索公司开发的大语言模型...

4.4 API 调用测试

# 使用 curl 调用 API
curl http://localhost:11434/api/generate -d '{ "model": "deepseek-r1:7b", "prompt": "请用一句话介绍 Python 语言", "stream": false }'
# 返回示例
{"model":"deepseek-r1:7b","response":"Python 是一种简洁、易读的高级编程语言..."}

五、Open WebUI 部署(可视化界面)

虽然命令行可以对话,但体验不够友好。Open WebUI 提供了类似 ChatGPT 的 Web 界面,支持多轮对话、历史记录、Markdown 渲染等功能。

5.1 Docker 部署 Open WebUI

# 拉取 Open WebUI 镜像
docker pull ghcr.io/open-webui/open-webui:main
# 启动容器(连接 Ollama)
docker run -d \
  --name open-webui \
  --restart unless-stopped \
  -p 8080:8080 \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v ~/open-webui-data:/app/backend/data \
  ghcr.io/open-webui/open-webui:main
# 如果 Ollama 也在 Docker 中运行,使用网络连接
docker run -d \
  --name open-webui \
  --restart unless-stopped \
  -p 8080:8080 \
  --network host \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  -v ~/open-webui-data:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

5.2 访问 Web 界面

打开浏览器访问:http://localhost:8080

  1. 首次访问需要注册账号(本地存储,无需联网)
  2. 登录后选择模型(如 deepseek-r1:7b)
  3. 开始对话!

六、Docker Compose 一键部署(完整方案)

为了方便管理,我们可以使用 Docker Compose 同时部署 Ollama 和 Open WebUI。

6.1 创建配置文件

# 创建项目目录
mkdir -p ~/ollama-stack && cd ~/ollama-stack
# 创建 docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  # Ollama 服务
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ./ollama-data:/root/.ollama
    environment:
      - TZ=Asia/Shanghai
    deploy:
      resources:
        reservations:
          memory: 8G
  # Open WebUI 服务
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./open-webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - TZ=Asia/Shanghai
    depends_on:
      - ollama
volumes:
  ollama-data:
  open-webui-data:
EOF

6.2 启动服务

# 启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 输出示例
# NAME STATUS PORTS
# ollama running 0.0.0.0:11434->11434/tcp
# open-webui running 0.0.0.0:8080->8080/tcp
# 查看日志
docker compose logs -f

6.3 下载模型

# 进入 Ollama 容器下载模型
docker exec -it ollama ollama pull deepseek-r1:7b
# 查看已下载的模型
docker exec -it ollama ollama list
# 输出示例
# NAME ID SIZE MODIFIED
# deepseek-r1:7b abc123def456 4.0 GB 2 minutes ago

七、高级配置

7.1 GPU 加速(NVIDIA)

# 检查 NVIDIA Docker 支持
docker run --rm --gpus all nvidia/cuda:11.8-base nvidia-smi

修改 docker-compose.yml,添加 GPU 支持:

services:
  ollama:
    image: ollama/ollama:latest
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

7.2 配置模型参数

# 创建 Modelfile 自定义模型
cat > Modelfile << 'EOF'
FROM deepseek-r1:7b
# 设置系统提示词
SYSTEM 你是一个专业的 AI 助手,擅长中文对话。
# 设置参数
PARAMETER temperature 0.7
PARAMETER num_ctx 4096
PARAMETER top_p 0.9
# 设置停止词
PARAMETER stop "<|im_end|>"
PARAMETER stop "<|im_start|>"
EOF
# 创建自定义模型
ollama create my-assistant -f Modelfile
# 运行自定义模型
ollama run my-assistant

7.3 API 集成示例(Python)

import requests
import json

def chat_with_ollama(prompt, model="deepseek-r1:7b"):
    """调用 Ollama API 进行对话"""
    url = "http://localhost:11434/api/chat"
    payload = {
        "model": model,
        "messages": [
            {"role": "user", "content": prompt}
        ],
        "stream": False
    }
    response = requests.post(url, json=payload)
    result = response.json()
    return result["message"]["content"]

# 使用示例
if __name__ == "__main__":
    answer = chat_with_ollama("请解释什么是机器学习?")
    print(answer)

八、常见问题排查

Q1: 模型下载太慢怎么办?

# 使用国内镜像加速(如果有的话)
# 或者手动下载模型文件后导入
# 查看下载进度
ollama pull deepseek-r1:7b --insecure

Q2: 内存不足怎么办?

# 使用更小的量化模型
ollama pull deepseek-r1:1.5b
# 1.5B 参数,仅需 2GB 内存
# 或者在启动时限制内存
docker run -d --memory="4g" --name ollama ollama/ollama

Q3: Open WebUI 无法连接 Ollama?

# 检查 Ollama 是否运行
curl http://localhost:11434/api/tags
# 检查容器网络
docker network inspect bridge
# 重启服务
docker compose restart

Q4: 如何更新模型?

# 更新到最新版本
ollama pull deepseek-r1:7b
# 删除旧模型
ollama rm deepseek-r1:7b

九、总结

通过本指南,你已经学会了:

  • 使用 Docker 部署 Ollama 大模型引擎
  • 下载和运行主流开源大模型(DeepSeek、LLaMA、Qwen)
  • 部署 Open WebUI 获得 ChatGPT 体验
  • 使用 Docker Compose 一键部署完整方案
  • Python API 集成调用
相关资源
  • Ollama 官网:https://ollama.com
  • Open WebUI:https://github.com/open-webui/open-webui
  • 模型库:https://ollama.com/library
  • DeepSeek:https://github.com/deepseek-ai

目录

  1. 技术栈
  2. 一、架构介绍
  3. 二、环境准备
  4. 2.1 硬件要求
  5. 2.2 软件要求
  6. 检查 Docker 是否安装
  7. 如果未安装,请先安装 Docker
  8. Windows/Mac: 下载 Docker Desktop
  9. Ubuntu: sudo apt install docker.io docker-compose
  10. 三、Ollama 部署(核心组件)
  11. 3.1 方式一:直接安装(推荐新手)
  12. 验证安装
  13. 输出示例
  14. 一键安装脚本
  15. 验证安装
  16. 3.2 方式二:Docker 部署(推荐生产环境)
  17. 拉取 Ollama 镜像
  18. 创建数据目录(持久化模型文件)
  19. 启动 Ollama 容器
  20. 查看运行状态
  21. 输出示例
  22. abc123 ollama/ollama Up 2 minutes 0.0.0.0:11434->11434/tcp ollama
  23. 3.3 验证 Ollama 是否正常运行
  24. 测试 API 是否可用
  25. 如果返回 JSON 格式的模型列表,说明运行正常
  26. {"models":[]}
  27. 四、下载并运行第一个模型
  28. 4.1 选择合适的模型
  29. 4.2 下载模型
  30. 下载 DeepSeek R1 7B 模型(推荐中文用户)
  31. 下载 LLaMA 3.1 8B 模型
  32. 下载 Qwen 2.5 7B 模型
  33. 下载过程示例
  34. pulling manifest
  35. pulling 6a4b3c2d... 100% |████████████| 4.0 GB / 4.0 GB
  36. verifying sha256 digest
  37. writing manifest
  38. success
  39. 4.3 命令行对话测试
  40. 运行模型进入对话模式
  41. 对话示例
  42. 4.4 API 调用测试
  43. 使用 curl 调用 API
  44. 返回示例
  45. 五、Open WebUI 部署(可视化界面)
  46. 5.1 Docker 部署 Open WebUI
  47. 拉取 Open WebUI 镜像
  48. 启动容器(连接 Ollama)
  49. 如果 Ollama 也在 Docker 中运行,使用网络连接
  50. 5.2 访问 Web 界面
  51. 六、Docker Compose 一键部署(完整方案)
  52. 6.1 创建配置文件
  53. 创建项目目录
  54. 创建 docker-compose.yml
  55. Ollama 服务
  56. Open WebUI 服务
  57. 6.2 启动服务
  58. 启动所有服务
  59. 查看服务状态
  60. 输出示例
  61. NAME STATUS PORTS
  62. ollama running 0.0.0.0:11434->11434/tcp
  63. open-webui running 0.0.0.0:8080->8080/tcp
  64. 查看日志
  65. 6.3 下载模型
  66. 进入 Ollama 容器下载模型
  67. 查看已下载的模型
  68. 输出示例
  69. NAME ID SIZE MODIFIED
  70. deepseek-r1:7b abc123def456 4.0 GB 2 minutes ago
  71. 七、高级配置
  72. 7.1 GPU 加速(NVIDIA)
  73. 检查 NVIDIA Docker 支持
  74. 7.2 配置模型参数
  75. 创建 Modelfile 自定义模型
  76. 设置系统提示词
  77. 设置参数
  78. 设置停止词
  79. 创建自定义模型
  80. 运行自定义模型
  81. 7.3 API 集成示例(Python)
  82. 使用示例
  83. 八、常见问题排查
  84. Q1: 模型下载太慢怎么办?
  85. 使用国内镜像加速(如果有的话)
  86. 或者手动下载模型文件后导入
  87. 查看下载进度
  88. Q2: 内存不足怎么办?
  89. 使用更小的量化模型
  90. 1.5B 参数,仅需 2GB 内存
  91. 或者在启动时限制内存
  92. Q3: Open WebUI 无法连接 Ollama?
  93. 检查 Ollama 是否运行
  94. 检查容器网络
  95. 重启服务
  96. Q4: 如何更新模型?
  97. 更新到最新版本
  98. 删除旧模型
  99. 九、总结
  100. 相关资源
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 算法实战:LeetCode 1419 数青蛙的模拟解法
  • 大数据 OLAP 中的近似聚合算法
  • GitHub Copilot、Trae 与 Cursor AI 编程工具对比评测
  • OpenClaw 2026.3.3 新增 AI 解析 PDF 功能实测
  • AI 视频生成模型构建与实战指南
  • AI 编程实战:自动化代码生成、低代码与算法优化
  • C++ 异常处理机制与自定义异常体系
  • 知网2026年AIGC检测算法又升级了,这次该怎么应对?
  • Chatbox AI:多模态桌面 AI 客户端功能详解
  • 医疗 NLP 实战:电子病历分析与智能问答开发
  • 图像自动文本化框架:提升多模态大模型描述质量与准确性
  • 各高校学位论文 AIGC 检测率要求汇总及应对指南
  • Python 异步数据汇聚与并行计算框架设计与实现
  • 详解 Java 中的 @Schema 注解
  • macOS 本地部署 OpenClaw 智能体框架指南
  • Linux 信号处理流程与操作系统中断机制解析
  • C++ 类与对象进阶:初始化列表、静态成员与编译器优化实战
  • 汽车雷达多径环境下幽灵目标检测算法研究
  • 后仿真 SDF 反标 Warning 描述与解决方案
  • 基于 Zynq FPGA 的雷龙 SD NAND 测试

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online