解决Docker中使用 Open WebUI识别不到本地ollama中的模型

  1. 识别不到本地ollama中模型的原因:

Docker中的Open WebUI没有连接到本地ollama的端口。

原来我运行的命令是:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

查看日志会发现如下报错:

报错出现的原因:

该命令会连接默认的端口号,但是本地ollama的端口号已经被我改为8000了,这需要我们修改Docker中的Open WebUI连接的端口号。

解决:

用-e命令覆盖原本的OLLAMA_BASE_URL地址和端口,运行命令docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e OLLAMA_BASE_URL=IPv4地址:你修改的ollama端口号 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

这里用局域网的IPv4地址的原因是:

确保 Docker 容器可以访问宿主机的 127.0.0.1:8000。因为 127.0.0.1 是容器内部的环回地址,它无法直接访问宿主机的 localhost。这意味着容器尝试连接自己的 127.0.0.1:8000,而不是宿主机的。

一定要注意修改为你ollama的端口号!!!

所以我们直接用局域网的ip区分容器内部的环回地址。

最后可以识别本地ollama运行的模型:

  1. 如果你没有配置 Ollama on Windows的环境变量,请细看本小点。

我们需要对「环境变量」进行一些自定义配置:

2.1 使用Windows + R快捷键打开「运行」对话框,输入以下命令,然后按Ctrl + Shift + Enter以管理员权限打开「环境变量」配置窗口。

C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables

2.2 在「用户变量」中,根据需要添加以下环境变量。

2.2.1 更改 Ollama API 访问地址和侦听端口

Ollama API 的默认访问地址和侦听端口是http://localhost:11434,只能在装有 Ollama 的系统中直接调用。如果要在网络中提供服务,请修改 API 的侦听地址和端口:

  • 变量名:OLLAMA_HOST
  • 变量值(端口)::8000

只填写端口号可以同时侦听(所有) IPv4 和 IPv6 的:8000 端口。

这里的端口号可以自行设置!

2.2.2 允许浏览器跨域请求

Ollama 默认只允许来自127.0.0.10.0.0.0的跨域请求,如果你计划在 LoboChat 等前端面板中调用 Ollama API,建议放开跨域限制

  • 变量名:OLLAMA_ORIGINS
  • 变量值:*

2.2.3 重启 Ollama 并测试 API 访问

(1)在「开始」菜单中找到并重新启动 Ollama。

(2)右键点击系统托盘中的 Ollama 图标,选择「View log」打开命令行窗口。

(3)分别执行以下命令,查看新配置的环境变量是否生效:

echo %OLLAMA_HOST%

echo %OLLAMA_ORIGINS%

2.3 浏览器中访问 Ollama API 地址和端口,验证访问是否正常。

3.配置完之后可以开始前面的解决问题的步骤

相关推荐
chanalbert5 分钟前
Docker网络技术深度研究与实战手册
docker·容器·自动化运维
linux修理工8 分钟前
docker部署zingerbee/netop 轻量级网络流量监控工具
docker
SugarPPig22 分钟前
“非参数化”大语言模型与RAG的关系?
人工智能·语言模型·自然语言处理
东风微鸣1 小时前
AI 赋能的故障排除:技术趋势与实践
docker·云原生·kubernetes·可观察性
BuHuaX2 小时前
Unity_UI_NGUI_缓动
ui·unity·c#·游戏引擎·游戏策划
先生沉默先4 小时前
Docker学习日志-Docker容器配置、Nginx 配置与文件映射
学习·nginx·docker
OEC小胖胖10 小时前
渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
前端·算法·ui·状态模式·web
墨尘游子14 小时前
11-大语言模型—Transformer 盖楼,BERT 装修,RoBERTa 直接 “拎包入住”|预训练白话指南
人工智能·语言模型·自然语言处理
陌上阳光14 小时前
docker搭建ray集群
docker·容器·ray
金井PRATHAMA14 小时前
主要分布于内侧内嗅皮层的层Ⅲ的网格-速度联合细胞(Grid × Speed Conjunctive Cells)对NLP中的深层语义分析的积极影响和启示
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·知识图谱