基于上一篇文章VMware+openweb UI+ollama+docker的bug问题总结

从虚拟机重启到 OpenWebUI 正常加载模型:终极排坑与完整流程总结

(适配绿色版 Ollama + Docker OpenWebUI,含网络与权限排坑)


一、核心背景与问题现象

你的环境

  • 虚拟机:Ubuntu 22.04(NAT 模式)
  • Ollama:绿色压缩包版,安装路径 /home/bxq/ai-ollama/bin
  • OpenWebUI:Docker 容器部署
  • 问题:虚拟机重启后,Ollama 已下载 qwen:0.5b,但 OpenWebUI 显示"未找到任何模型"

根本原因拆解

  1. 绿色版 Ollama 未开机自启 :压缩包版未注册系统服务,重启后进程消失,ollama: command not found。
  2. Ollama 默认仅监听本地 :./ollama serve 默认绑定 127.0.0.1:11434,仅允许虚拟机本机访问,Docker 容器被拒绝。
  3. OpenWebUI 容器网络配置问题 :Linux Docker 无法自动解析 host.docker.internal,需通过 172.17.0.1 或虚拟机 IP 访问宿主机 Ollama。

二、完整修复流程(按顺序执行)

步骤1:启动 Ollama 并开放外部访问

bash 复制代码
# 进入 Ollama 程序目录
cd /home/bxq/ai-ollama/bin

# 杀死旧进程(防止端口占用)
pkill ollama

# 关键:绑定 0.0.0.0,允许所有设备访问
OLLAMA_HOST=0.0.0.0 ./ollama serve &

# 验证模型是否存在
./ollama list

✅ 成功标志:输出 qwen:0.5b,日志显示 Listening on 0.0.0.0:11434。

步骤2:重建 OpenWebUI 容器,修正 API 地址

bash 复制代码
# 停止并删除旧容器
docker stop openwebui
docker rm openwebui

# 用正确参数启动容器
docker run -d \
  --name openwebui \
  -p 3000:3000 \
  -e HOST=0.0.0.0 \
  -e PORT=3000 \
  -e OLLAMA_BASE_URL=http://172.17.0.1:11434 \
  --restart always \
  ghcr.io/open-webui/open-webui:main

步骤3:验证容器与 Ollama 的连通性

bash 复制代码
# 进入容器测试 API 接口
docker exec -it openwebui sh
curl http://172.17.0.1:11434/api/tags

✅ 成功标志:返回包含 qwen:0.5b 的 JSON 数据。

步骤4:WebUI 内刷新模型列表

  1. 浏览器访问 http://192.168.146.131:3000 并登录
  2. 点击左下角「设置」→「连接」
  3. 确认 Ollama API 地址为 http://172.17.0.1:11434,点击「验证连接」
  4. 验证成功后,点击「刷新模型列表」,返回聊天界面即可选择模型

三、关键坑点与解决方案对照表

现象 根本原因 解决命令
ollama: command not found 未进入程序目录,或未加 ./ cd /home/bxq/ai-ollama/bin && ./ollama list
could not connect to ollama app Ollama 进程未启动 pkill ollama && ./ollama serve &
容器内 curl 172.17.0.1:11434 失败 Ollama 仅监听 127.0.0.1 OLLAMA_HOST=0.0.0.0 ./ollama serve &
WebUI 刷新后仍无模型 API 地址配置错误 重建容器,指定 OLLAMA_BASE_URL=http://172.17.0.1:11434

四、虚拟机重启后「一键复活」脚本

每次重启虚拟机,复制以下命令即可恢复服务:

bash 复制代码
# 1. 启动 Ollama(开放访问)
cd /home/bxq/ai-ollama/bin
pkill ollama
OLLAMA_HOST=0.0.0.0 ./ollama serve &

# 2. 重启 OpenWebUI
docker restart openwebui

# 3. 验证连通性
./ollama list
docker exec openwebui curl -s http://172.17.0.1:11434/api/tags

五、拓展:常用 Ollama 模型下载命令

bash 复制代码
# 国产模型
./ollama pull qwen:0.5b
./ollama pull qwen:1.8b
./ollama pull chatglm3:6b

# 开源模型
./ollama pull llama3:8b
./ollama pull gemma:2b
./ollama pull phi3:3.8b

六、总结与避坑要点

  1. 绿色版 Ollama 必须加 ./ 运行,且需手动启动,无法开机自启。
  2. OLLAMA_HOST=0.0.0.0 是关键,否则 Docker 容器无法访问 Ollama 服务。
  3. OpenWebUI 必须通过 172.17.0.1 访问 Ollama ,Linux 环境下不推荐使用 host.docker.internal。
  4. 验证连通性优先用 curl 测试 API,而非直接依赖 WebUI 前端显示。
相关推荐
wzq11_66632 分钟前
Kubernetes集群——基础篇(基础知识与搭建步骤一遍过!!!)
java·容器·kubernetes
java_logo2 小时前
Docker 部署 dockurr/windows:轻松搭建浏览器可控 Windows 虚拟机
运维·windows·docker·容器·虚拟机·kvm·轩辕镜像
谢亮_vipxieliang3 小时前
私有镜像仓库:Registry、Harbor 与镜像同步实战
网络·docker·容器
努力努力再努力wz4 小时前
【边缘计算入门系列】从“在哪里算”到“怎么算”:一文建立边缘计算、算子、计算图与 Tensor 的底层心智模型
人工智能·docker·边缘计算
江湖有缘5 小时前
3款开源IT工具箱整理合集,可Docker一键部署!
docker·容器·开源
旋生万物5 小时前
用螺旋数重写 Transformer Attention:让大模型自带“相位记忆“的 PyTorch 实现
docker·云原生·kubernetes·螺旋生成论·螺旋相位
编码如写诗6 小时前
【k8s】全新Ubuntu 26.04 使用kt 超简单安装 k8s 最新1.37.1+KubeSphere4.1.3
ubuntu·容器·kubernetes
小匠石钧知6 小时前
05_在k8s集群中安装NFS实现ReadWriteMany存储
java·容器·kubernetes·nfs·readwritemany·rwx
余槐i6 小时前
-m 2g 反而更早 OOM:Docker 内存计数与宿主机空闲口径差异
java·linux·docker·性能优化·cgroup
风华同学6 小时前
Docker镜像换源
运维·docker·容器