【OpenClaw】 Open-WebUI Docker 部署连接本地 Ollama 技术文档

Open-WebUI Docker 部署连接本地 Ollama 技术文档

概述

本文档记录了在 Linux 系统上使用 Docker 部署 Open-WebUI,连接本地非 Docker 部署的 Ollama 时遇到的问题及解决方案。


环境说明

组件 部署方式
Open-WebUI Docker 容器
Ollama 本地直接安装(非 Docker)
操作系统 Linux

部署命令

方案 1:Host 网络模式(推荐)

bash 复制代码
docker run -d --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

访问地址 : http://localhost:8080

优点:

  • 容器直接使用宿主机网络
  • 无需额外配置即可访问宿主机的 localhost:11434
  • 网络性能最佳

注意:

  • 端口直接暴露在宿主机
  • 访问端口是 8080,不是 3000

方案 2:端口映射 + host.docker.internal

bash 复制代码
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

访问地址 : http://localhost:3000

说明:

  • --add-host=host.docker.internal:host-gatewayhost.docker.internal 解析为宿主机 IP
  • 需要设置 OLLAMA_BASE_URL 环境变量

方案 3:端口映射 + 宿主机 IP

bash 复制代码
# 获取宿主机 IP
hostname -I | awk '{print $1}'

# 运行容器(假设宿主机 IP 为 192.168.1.100)
docker run -d -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

访问地址 : http://localhost:3000


遇到的问题及解决方案

问题 1:容器名称冲突

错误信息:

复制代码
docker: Error response from daemon: Conflict. The container name "/open-webui" is already in use...

原因: 已存在同名容器

解决方案:

bash 复制代码
# 删除旧容器
docker rm -f open-webui

# 重新创建
docker run -d --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

问题 2:Ollama 只监听本地地址

错误现象: Open-WebUI 无法连接 Ollama

检查方法:

bash 复制代码
ss -tlnp | grep 11434
# 输出: LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:*

原因 : Ollama 默认只监听 127.0.0.1,Docker 容器无法访问

解决方案:

bash 复制代码
# 修改 Ollama 服务配置
sudo systemctl edit ollama.service

写入以下内容:

ini 复制代码
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
bash 复制代码
# 重启 Ollama
sudo systemctl restart ollama

# 确认监听地址
ss -tlnp | grep 11434
# 应输出: LISTEN 0 4096 0.0.0.0:11434 0.0.0.0:*

注意 : 使用 --network host 模式时,即使 Ollama 只监听 127.0.0.1 也可以访问,因为容器共享宿主机网络命名空间。


问题 3:访问端口错误

错误信息:

复制代码
net::ERR_CONNECTION_REFUSED

原因 : 使用 --network host 模式时,服务监听 8080 端口,而非映射的 3000 端口

解决方案:

模式 访问地址
-p 3000:8080 http://localhost:3000
--network host http://localhost:8080

问题 4:500 Internal Error

排查步骤:

bash 复制代码
# 1. 查看容器日志
docker logs open-webui --tail 100

# 2. 检查容器状态
docker ps -a | grep open-webui

# 3. 测试 Ollama 连接
curl http://localhost:11434/api/tags

# 4. 进入容器测试网络
docker exec -it open-webui sh -c "curl http://localhost:11434/api/tags"

常用命令

检查服务状态

bash 复制代码
# Ollama 状态
systemctl status ollama

# Ollama 监听端口
ss -tlnp | grep 11434

# 测试 Ollama API
curl http://localhost:11434/api/tags

# Open-WebUI 容器状态
docker ps -a | grep open-webui

# Open-WebUI 日志
docker logs open-webui --tail 50
docker logs -f open-webui  # 实时日志

容器管理

bash 复制代码
# 停止容器
docker stop open-webui

# 启动容器
docker start open-webui

# 重启容器
docker restart open-webui

# 删除容器(数据卷保留)
docker rm -f open-webui

# 删除数据卷(谨慎操作)
docker volume rm open-webui

配置验证

1. 验证 Ollama 可访问

bash 复制代码
curl http://localhost:11434/api/tags

应返回模型列表 JSON。

2. 验证 Open-WebUI 运行

bash 复制代码
curl http://localhost:8080/health

应返回 {"status": "ok"}

3. Web 界面验证

访问 http://localhost:8080,进入 Settings → Connections,确认 Ollama 连接状态为绿色。


推荐配置

生产环境推荐:

bash 复制代码
docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -e WEBUI_SECRET_KEY=your-secret-key \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

开发环境推荐:

bash 复制代码
docker run -d --network host \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

参考链接


文档创建时间: 2026-04-10

相关推荐
碳基硅坊19 小时前
OpenClaw 落地应用实践:把 AI 从“能聊“变成“能干活“
人工智能·openclaw
程序员柒叔20 小时前
OpenClaw 一周动态-2026-W18
人工智能·agent·openclaw
运维全栈笔记1 天前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
SCBAiotAigc1 天前
2026.5.1:`DockerDesktop must be owned by an elevated account`错误的解决办法
人工智能·docker·具身智能
岛雨QA1 天前
🎉Token自由-Ollama部署本地大模型超详细操作指南
人工智能·llm·ollama
jinanwuhuaguo1 天前
OpenClaw联邦之心——从孤岛记忆到硅基集体潜意识的拓扑学革命(第二十三篇)
android·人工智能·kotlin·拓扑学·openclaw
虾壳云管家1 天前
【含四月底最新安装包】OpenClaw一键安装及使用教程
人工智能·openclaw·小龙虾·openclaw安装·openclaw一键部署
无心水1 天前
【Hermes:Skill系统深度】21、Skill 调试与冲突解决:为什么没触发?怎么修复? —— Honcho 智能体排障完全手册
人工智能·windows·openclaw·养龙虾·hermes·养马·honcho
无心水1 天前
【Hermes:Skill系统深度】22、资产保值时代:OpenClaw Skill → Hermes 无缝迁移完整指南
人工智能·ai·openclaw·养龙虾·hermes·养马·honcho