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

Open WebUI Docker 部署指南与最佳实践

Open WebUI 支持本地离线运行多种大语言模型,基于 Docker 容器化部署可快速搭建稳定高效的 AI 交互平台。涵盖从环境准备、基础启动到 GPU 加速、数据持久化及安全加固的全流程配置,提供端口映射、远程连接及资源限制等高级设置方案,并给出常见问题排查与备份策略,帮助用户实现生产级本地 AI 服务落地。

神经兮兮发布于 2026/3/22更新于 2026/9/1070 浏览

Open WebUI Docker 部署指南与最佳实践

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,设计用于完全离线操作,支持各种大型语言模型(LLM)运行器,包括 Ollama 和兼容 OpenAI 的 API。本文将详细介绍如何通过 Docker 容器化方式部署 Open WebUI,涵盖基础部署、GPU 加速、数据持久化及生产环境安全配置,帮助用户快速搭建稳定高效的本地 AI 交互平台。

部署架构概览

Open WebUI 的 Docker 部署采用多容器架构,通过 Docker Compose 实现服务编排。核心组件包括 Ollama 服务(模型运行时)和 Open WebUI 应用服务,两者通过内部网络通信,形成完整的本地 AI 服务栈。

主要容器及数据卷说明:

  • ollama 容器:运行 Ollama 模型引擎,负责模型加载和推理计算
  • open-webui 容器:提供 Web 界面和 API 服务,处理用户交互和请求转发
  • 数据卷:ollama 卷存储模型权重和运行时数据,open-webui 卷保存用户配置、对话历史和应用状态

环境准备与依赖检查

在开始部署前,需确保系统满足以下要求:

系统要求
  • Docker Engine 20.10+ 和 Docker Compose v2+
  • 至少 4GB RAM(推荐 8GB+,用于模型运行)
  • 10GB+ 可用磁盘空间(用于基础镜像和模型存储)
  • 网络连接(用于拉取镜像和模型,部署后可离线运行)
依赖检查命令
# 检查 Docker 版本
docker --version && docker compose version
# 验证 Docker 服务状态
systemctl status docker || service docker status

如未安装 Docker,可参考官方安装指南。对于 GPU 支持,还需安装 NVIDIA Container Toolkit。

基础部署步骤

Open WebUI 提供多种部署方式,推荐使用官方提供的 docker-compose.yaml 进行一键部署,自动处理服务依赖和网络配置。

获取项目代码
git clone https://github.com/open-webui/open-webui.git
cd open-webui
启动基础服务

使用默认配置启动 Ollama 和 Open WebUI 服务:

# 使用默认配置启动
docker compose up -d
# 或使用官方提供的启动脚本
bash run-compose.sh

docker-compose.yaml 定义了基础服务配置,包括:

  • Ollama 服务使用官方镜像,配置自动重启和数据卷挂载
  • Open WebUI 服务从本地构建,通过内部网络连接 Ollama
  • 默认映射 WebUI 端口 3000,可通过环境变量 OPEN_WEBUI_PORT 修改
验证部署状态
# 检查容器状态
docker compose ps
# 查看服务日志
docker compose logs -f open-webui

服务启动后,访问 http://localhost:3000 即可打开 Open WebUI 界面。首次访问需创建管理员账户,完成初始配置。

高级配置选项

Open WebUI 支持丰富的配置选项,可通过环境变量、自定义 Compose 文件或启动脚本参数实现个性化部署。

端口映射调整

修改 WebUI 访问端口(例如改为 80 端口):

# 临时指定端口
OPEN_WEBUI_PORT=80 docker compose up -d
# 或修改配置文件
sed -i 's/OPEN_WEBUI_PORT-3000/OPEN_WEBUI_PORT-80/' docker-compose.yaml
自定义 Ollama 连接

当 Ollama 服务运行在外部服务器或已有实例时,通过环境变量指定连接地址:

# 连接远程 Ollama 服务
OLLAMA_BASE_URL=https://ollama.example.com docker compose up -d
# 或修改 compose 文件中的环境变量
environment:
  - OLLAMA_BASE_URL=http://external-ollama:11434
启用 API 访问

通过 docker-compose.api.yaml 扩展配置,暴露 Ollama API 供外部访问:

docker compose -f docker-compose.yaml -f docker-compose.api.yaml up -d

该配置会额外映射 Ollama 的 11434 端口,支持外部工具直接调用模型 API。

GPU 加速配置

对于需要运行大模型的场景,启用 GPU 加速可显著提升推理性能。Open WebUI 提供完整的 GPU 支持方案,兼容 NVIDIA 和 AMD 显卡。

NVIDIA GPU 配置
  1. 确保已安装 NVIDIA Container Toolkit
  2. 使用 GPU 专用 Compose 配置:
# 基础 GPU 配置
docker compose -f docker-compose.yaml -f docker-compose.gpu.yaml up -d
# 或通过启动脚本指定 GPU 数量
bash run-compose.sh --enable-gpu[count=1]

docker-compose.gpu.yaml 通过 Docker 的设备请求功能,将 GPU 资源分配给 Ollama 容器:

services:
  ollama:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
AMD GPU 配置

对于 AMD 显卡,使用 ROCm 驱动和专用镜像:

# 使用 AMD GPU 专用配置
docker compose -f docker-compose.yaml -f docker-compose.amdgpu.yaml up -d

注意:GPU 支持需对应镜像版本,NVIDIA 使用 :cuda 标签,AMD 使用 :rocm 标签,可在 Dockerfile 中查看构建细节。

数据持久化方案

为防止数据丢失和实现模型迁移,需正确配置数据持久化策略。Open WebUI 提供两种数据管理方式:Docker 卷(推荐)和主机目录挂载。

默认数据卷方案

docker-compose.yaml 默认使用命名卷存储数据:

volumes:
  ollama: {} # 存储 Ollama 模型和配置
  open-webui: {} # 存储 WebUI 用户数据和设置

查看数据卷位置:

# 查看卷详细信息
docker volume inspect open-webui
主机目录挂载(高级)

如需直接访问数据文件,可使用主机目录挂载:

# 使用自定义目录存储 Ollama 数据
bash run-compose.sh --data[folder=./ollama-data]

或修改 docker-compose.data.yaml:

services:
  ollama:
    volumes:
      - ./ollama-data:/root/.ollama # 主机目录替换默认卷

注意:需确保挂载目录权限正确,避免容器访问权限问题。

安全加固措施

生产环境部署需注意安全配置,防止未授权访问和数据泄露。

1. 设置访问密码

通过环境变量设置 WebUI 管理员密码:

# 启动时设置初始密码
WEBUI_SECRET_KEY="your_strong_password" docker compose up -d

或在 WebUI 设置界面(/settings/admin)配置用户认证和权限控制。

2. 禁用不必要的端口映射

生产环境应避免直接暴露 Ollama API 端口,仅保留 WebUI 访问入口。如需外部访问,建议通过反向代理(如 Nginx)添加认证和 HTTPS。

3. 定期更新镜像

使用 Watchtower 自动更新容器镜像:

docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower --interval 86400 open-webui ollama

监控与日志管理

容器日志查看
# 实时查看 WebUI 日志
docker compose logs -f open-webui --tail=100
# 查看 Ollama 模型加载日志
docker compose logs ollama | grep "loaded model"
健康检查

Open WebUI 容器内置健康检查机制,可通过 Docker 状态查看:

# 查看容器健康状态
docker inspect --format='{{.State.Health.Status}}' open-webui

健康检查通过访问 /health 端点实现,配置在 Dockerfile 中:

HEALTHCHECK CMD curl --silent --fail http://localhost:${PORT}/health | jq -ne 'input.status == true' || exit 1

常见问题解决

1. 容器启动失败

症状:docker compose ps 显示容器状态为 Exited 或 Restarting

排查步骤:

# 查看错误日志
docker compose logs --tail=50 open-webui
# 检查端口占用
netstat -tulpn | grep 3000
# 或配置的其他端口

常见原因:端口冲突、数据卷权限问题、GPU 驱动不兼容。可尝试更换端口或重建数据卷。

2. Ollama 连接超时

症状:WebUI 显示'无法连接到 Ollama'错误

解决方案:

  1. 确认 Ollama 容器正常运行:docker compose exec ollama ollama list
  2. 检查网络配置,使用 --add-host=host.docker.internal:host-gateway 确保容器互通
  3. 尝试主机网络模式:docker run --network=host ...
3. GPU 资源未识别

症状:模型运行缓慢,日志显示使用 CPU 推理

检查命令:

# 验证 GPU 是否对 Docker 可见
docker run --rm --gpus all nvidia/cuda:12.1.1-base-ubuntu22.04 nvidia-smi

如无输出,需重新安装 NVIDIA Container Toolkit 并重启 Docker 服务。

部署最佳实践

1. 资源优化配置

根据硬件情况调整资源限制,在 docker-compose.yaml 中添加:

services:
  open-webui:
    deploy:
      resources:
        limits:
          cpus: '4'
          memory: 8G
        reservations:
          cpus: '2'
          memory: 4G
2. 多环境隔离

通过环境变量文件实现配置隔离:

# 创建环境变量文件
cp .env.example .env.prod
# 编辑自定义配置
vi .env.prod
# 使用指定环境文件启动
docker compose --env-file .env.prod up -d
3. 自动化部署

结合 CI/CD 工具实现自动构建和部署,示例 GitHub Actions 配置:

name: Deploy Open WebUI
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Start services
        run: docker compose up -d
4. 备份策略

定期备份数据卷,防止意外数据丢失:

# 备份 Ollama 模型数据
docker run --rm -v ollama:/source -v $(pwd):/backup alpine \
  tar -czf /backup/ollama-backup-$(date +%F).tar.gz -C /source .
# 备份 WebUI 数据
docker run --rm -v open-webui:/source -v $(pwd):/backup alpine \
  tar -czf /backup/webui-backup-$(date +%F).tar.gz -C /source .

总结

通过 Docker 容器化部署 Open WebUI,用户可快速搭建本地 AI 服务平台,同时保证环境一致性和部署灵活性。本文介绍的基础部署、高级配置、GPU 加速和数据持久化方案,覆盖了从开发测试到生产环境的全场景需求。未来版本中,Open WebUI 将进一步优化容器化体验,包括更小的镜像体积、更灵活的插件系统和增强的监控能力。

目录

  1. Open WebUI Docker 部署指南与最佳实践
  2. 部署架构概览
  3. 环境准备与依赖检查
  4. 系统要求
  5. 依赖检查命令
  6. 检查 Docker 版本
  7. 验证 Docker 服务状态
  8. 基础部署步骤
  9. 获取项目代码
  10. 启动基础服务
  11. 使用默认配置启动
  12. 或使用官方提供的启动脚本
  13. 验证部署状态
  14. 检查容器状态
  15. 查看服务日志
  16. 高级配置选项
  17. 端口映射调整
  18. 临时指定端口
  19. 或修改配置文件
  20. 自定义 Ollama 连接
  21. 连接远程 Ollama 服务
  22. 或修改 compose 文件中的环境变量
  23. 启用 API 访问
  24. GPU 加速配置
  25. NVIDIA GPU 配置
  26. 基础 GPU 配置
  27. 或通过启动脚本指定 GPU 数量
  28. AMD GPU 配置
  29. 使用 AMD GPU 专用配置
  30. 数据持久化方案
  31. 默认数据卷方案
  32. 查看卷详细信息
  33. 主机目录挂载(高级)
  34. 使用自定义目录存储 Ollama 数据
  35. 安全加固措施
  36. 1. 设置访问密码
  37. 启动时设置初始密码
  38. 2. 禁用不必要的端口映射
  39. 3. 定期更新镜像
  40. 监控与日志管理
  41. 容器日志查看
  42. 实时查看 WebUI 日志
  43. 查看 Ollama 模型加载日志
  44. 健康检查
  45. 查看容器健康状态
  46. 常见问题解决
  47. 1. 容器启动失败
  48. 查看错误日志
  49. 检查端口占用
  50. 或配置的其他端口
  51. 2. Ollama 连接超时
  52. 3. GPU 资源未识别
  53. 验证 GPU 是否对 Docker 可见
  54. 部署最佳实践
  55. 1. 资源优化配置
  56. 2. 多环境隔离
  57. 创建环境变量文件
  58. 编辑自定义配置
  59. 使用指定环境文件启动
  60. 3. 自动化部署
  61. 4. 备份策略
  62. 备份 Ollama 模型数据
  63. 备份 WebUI 数据
  64. 总结

更多推荐文章

查看全部
  • Docker 部署 Coze 应用服务指南
  • 8 个 Python 高效数据分析技巧
  • Vue Print Designer 前端可视化打印设计器
  • 通过 URI Scheme 实现从 Web 页面启动本地 C++ 应用程序及源码示例
  • Gemini 2.5 Pro 技术突破与实战应用深度解析
  • Kubernetes 集群可视化管理:Kuboard 部署与实战指南
  • RMBG-2.0 企业级集成:API 封装、Flask 后端与前端拖拽上传方案
  • 使用 Ollama、Open WebUI 和 Docker 本地部署 AI 大语言模型
  • AIAgentWorkFlow 多智能体协作与谈判机制深度解析
  • 2026 年高校 AIGC 检测新规解读及 AI 率合格标准
  • Rust 所有权系统是为了解决什么问题
  • Home Assistant 主题定制指南:打造专属智能家居界面
  • AMD显卡终极兼容指南:llama.cpp Vulkan后端快速解决方案
  • 开源 AI 编程工具选型对比:OpenCode 与 GitHub Copilot 谁更优
  • Python unstructured 库:处理非结构化数据并转换为结构化格式
  • Shell 数组基础用法与注意事项
  • AI 辅助 PCB 设计:效率革命与工程师角色重塑
  • FPGA 核心技能学习路径与思维导图汇总
  • OpenClaw 部署实战:Minimax/DeepSeek 模型与飞书机器人集成
  • 人工智能:多模态大模型原理与跨模态应用实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

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