Open WebUI 安装教程:用 Docker 连接 Ollama,给本地模型一个聊天界面
核对说明:本文的命令、镜像标签和连接方式取自 Open WebUI 官方文档(Quick Start、Starting with Ollama、Connection Errors 页面)和 Ollama 官方文档,2026-10-30 读取。Open WebUI 更新很快,官方文档里写的镜像大小、页面路径可能很快就变;我们没有在每种系统上逐一实机验证,以你读到的官方页面为准。
装好 Ollama 之后,默认你只能在命令行里和模型对话。想要一个像网页版聊天那样的界面,有对话历史、有模型下拉框、能给家人同事一起用,最常见的选择就是 Open WebUI。这篇 Open WebUI 安装 教程会带你用 Docker 把它跑起来,连上你本机的 Ollama,再处理最常见的几类连接问题。如果还没装 Ollama,请先看《Ollama 安装教程》。
Open WebUI 是什么,和 Ollama 是什么关系
Open WebUI 是一个自托管的 AI 界面。它自己不运行模型,只是一个前端:你在网页里输入问题,它把请求发给后端的模型服务,再把返回的内容流式显示出来。官方项目介绍中说它支持 Ollama 和兼容 OpenAI 的接口,也就是说既能接本地模型,也能接云端 API。
所以整体结构很简单:
- 浏览器访问 Open WebUI(默认你映射的端口,例如 3000)。
- Open WebUI 把请求发给 Ollama(默认端口 11434)。
- Ollama 在你的显卡或内存上跑模型,把 token 流式返回。

这个分工带来两个实际结论。一是模型跑得快不快,取决于 Ollama 和你的硬件,而不是 Open WebUI;如果速度慢,先看《Ollama 不使用 GPU 怎么办》。二是 Open WebUI 本身很轻,官方在 2026-10-16 的测试里,精简版镜像闲置时容器内存约 300MiB(这只是容器自身,并不是最低内存要求)。
选择哪种方式:Docker、Python 还是桌面应用
官方 Quick Start 提供了几种方式,下面是我们对新手的建议:
| 方式 | 适合谁 | 优点 | 注意点 |
|---|---|---|---|
| Docker | 大多数人 | 官方推荐,升级简单,数据在卷里 | 需要先装 Docker;容器连宿主机的 Ollama 要处理地址 |
| pip / uv(Python) | 低资源环境、想手动控制 | 不用装 Docker | 官方说明支持 Python 3.11 和 3.12,3.13 暂不支持 |
| Kubernetes | 团队、企业 | 可扩展 | 门槛较高,本文不展开 |
| 带 Ollama 的合一镜像 | 想一条命令装完 | 一个容器里同时有 Open WebUI 和 Ollama | 与你已经装好的 Ollama 会重复,模型要重新下载 |
如果你已经按教程装好了 Ollama,最顺手的是 Docker 版的 Open WebUI 连接宿主机的 Ollama。
开始之前的准备
- 已安装 Docker(Windows 上通常使用 Docker Desktop,官方也提供 WSL 的说明)。
- Ollama 正在运行,并且至少下载过一个模型(见《本地部署大模型完整指南》)。
- 生成一个密钥,Open WebUI 官方建议用
openssl rand -hex 32生成并固定设置为WEBUI_SECRET_KEY。如果不固定,每次重建容器都会让所有人被登出。
Open WebUI 安装步骤一:用 Docker 启动
官方 Quick Start 给出的标准命令如下(把 your-secret-key 换成你生成的密钥):
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
-e WEBUI_SECRET_KEY=your-secret-key \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main
逐项解释:
| 参数 | 作用 |
|---|---|
-p 3000:8080 |
在本机 3000 端口打开界面;3000 被占用时改左边的数字 |
-v open-webui:/app/backend/data |
你的对话、用户和设置保存在这个卷里,升级后仍在;不要不挂卷运行 |
--add-host=host.docker.internal:host-gateway |
让容器能访问你本机上的 Ollama |
--restart always |
重启电脑后自动启动 |
-e WEBUI_SECRET_KEY |
固定会话密钥,避免重建容器后全员登出 |
启动完成后,在浏览器打开 http://localhost:3000。
镜像标签怎么选
官方列出了几种标签::main 是标准镜像,包含语音识别和嵌入模型等;:slim 是精简版,官方标注下载大小约 197MB,而 :main 约 1.62GB(Linux/amd64 压缩大小,2026-10-16 检查,实际会随构建变化);:cuda 带 NVIDIA GPU 支持;:ollama 把 Ollama 打包进容器。精简版只适合只聊天、或者把文档解析、语音等交给外部服务的场景,用文档问答、本地语音的人请用标准镜像。生产环境建议固定版本标签(例如 :vX.Y.Z),因为 :main 和 :latest 是滚动更新的镜像。
Open WebUI 安装步骤二:创建管理员账户
首次打开页面会看到 “Get started with Open WebUI” 并提示创建管理员账户。官方说明:第一个账户就是管理员,负责管理用户和全部实例级设置,所有数据都保存在你自己的卷里;管理员创建后,注册会自动关闭。想让别人加入,需要在管理设置里打开新用户注册,新账户会处于“待批准”状态,由你在管理面板里批准。请务必记住管理员密码,丢失会导致无法进入实例设置。
Open WebUI 安装步骤三:连接 Ollama
Open WebUI 启动后会自动尝试连接 Ollama。如果顺利,你在模型下拉框里就能看到你已经下载的模型。手动检查位置是:头像 → Settings → Admin → Connections,在 “Manage Ollama API Connections” 里查看。官方提示:
- 如果 Ollama 在宿主机上而 Open WebUI 在 Docker 里,URL 使用
http://host.docker.internal:11434。 - 可以添加多个 Ollama 实例,Open WebUI 会用随机方式在它们之间分配请求;模型 ID 需要完全一致才会合并成一个条目。
- 如果你想把 Ollama 放在另一台机器上,可以在启动容器时设置
OLLAMA_BASE_URL。
直接在界面里下载模型
在连接的 Manage 对话框里可以直接下载模型,也可以在模型选择器里输入模型名,如果还没有就会提示从 Ollama 下载。Ollama 还可以直接拉取 Hugging Face 上的 GGUF,格式是 hf.co/{用户名}/{仓库}:{量化},量化部分与 GGUF 文件名一致,例如 Q4_K_M 或 Q8_0。选哪个量化可以参考《大模型量化与 Q4_K_M》。选什么模型则可以看《本地大模型推荐》。
不用 Docker:用 pip 安装
官方也提供 Python 路线,命令很简短:
pip install open-webui
open-webui serve
默认在 http://localhost:8080 提供服务。可以用 DATA_DIR 指定数据目录,用 --port 修改端口。注意官方的版本说明:支持 Python 3.11 和 3.12,3.13 暂不支持;生产环境建议直接用 Docker 镜像或最新的 Python 3.12。会话密钥会写入启动目录下的 .webui_secret_key,所以请设置 WEBUI_SECRET_KEY,或者始终从同一个目录启动。另外,在没有 NVIDIA 显卡的 Linux x86_64 机器上,官方提醒先安装 CPU 版 PyTorch,避免装进一大堆 CUDA 库。
连不上 Ollama 怎么办
按官方的 Connection Errors 页面,最常见的原因是网络地址配置问题:
| 现象 | 原因 | 处理 |
|---|---|---|
| 模型下拉框是空的 | Open WebUI 访问不到 Ollama | 先在浏览器打开 Ollama 地址确认它在运行 |
| Docker 里连不上宿主机的 Ollama | 容器里的 localhost 是容器自己 | 使用 http://host.docker.internal:11434,或者用 --network=host |
| Ollama 只监听 127.0.0.1 | 默认只在本机监听 | 设置 OLLAMA_HOST=0.0.0.0 并重启 Ollama |
使用 --network=host 后打不开页面 |
端口变化 | 此时 Open WebUI 的页面在 http://localhost:8080 |
| 模型列表加载很慢、页面转圈 | 某个连接地址不可达 | 删除或修复不可达的连接,或者缩短 AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST |
| 偶尔提示 “Model not found” | 域名解析间歇失败 | 官方建议保持默认解析方式,不开启 c-ares |
使用 --network=host 时,官方示例是:
docker run -d --network=host \
-v open-webui:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main
需要提醒的是,把 OLLAMA_HOST 设置成 0.0.0.0 会让局域网里的其他设备也能访问 Ollama,而 Ollama 本身没有登录。除非你清楚网络环境,不要把这个端口暴露到公网。
升级与备份
官方给出两种升级方式:用 Watchtower 一次性更新,或手动更新。手动更新的步骤是:删除旧容器(docker rm -f open-webui),拉取新镜像(docker pull ghcr.io/open-webui/open-webui:main),再用同样的参数启动。数据在名为 open-webui 的卷里,所以只要卷在、密钥没变,对话和设置都会保留。删除卷会清空所有数据,请不要随手执行。想要稳定,就固定版本号再升级,并在升级前备份这个卷。
把 Open WebUI 用得更顺手的几个建议
- 给不同用途建不同模型:官方 Ollama 指南里提到,可以基于已有模型创建带系统提示词和参数的新模型,不用重新下载。
- 用前缀区分多台机器:有多个 Ollama 实例时,用 Prefix ID 区分。
- 只开放你想给别人的模型:在连接的 Model IDs 里做白名单。
- 注意隐私边界:官方提醒,本地推理并不会让你另外配置的云端工具、提取或嵌入服务也变成本地;选择云端模型会把提示词发给对应服务。想知道本地和 API 怎么取舍,见《本地部署还是 API》。
- 想要不依赖 Docker 的桌面体验:可以对比《LM Studio 教程》。
常见问题(FAQ)
Open WebUI 和 Ollama 是什么关系?
Open WebUI 是界面,Ollama 是运行模型的服务。前者通过 Ollama 的接口(默认 11434 端口)调用后者。
Open WebUI 能同时连接云端模型吗?
可以。官方说明它支持 Ollama、兼容 OpenAI 的接口等多种协议,本地和云端模型可以放在同一个界面里。但选择云端模型就意味着内容会发给云端服务。
我需要 GPU 才能运行 Open WebUI 吗?
不需要。Open WebUI 自己很轻,GPU 是给 Ollama 跑模型用的。官方的 :cuda 镜像是给 Open WebUI 容器本身提供 NVIDIA GPU 支持;模型推理仍然由 Ollama 完成,所以大多数人用不到它。
为什么我在容器里连不上 localhost:11434?
容器里的 localhost 指的是容器自己。请改用 http://host.docker.internal:11434,或者使用 --network=host。
数据保存在哪里?会丢吗?
保存在你挂载的卷里(上面例子里的 open-webui 卷)。只要不删除这个卷,升级和重启都不会丢;建议定期备份。
注册被关闭了,怎么让家人使用?
用管理员登录,到 Settings → Admin → Authentication 打开新用户注册,新账户会等待你在管理面板里批准。
下一步与社区
如果你在连接、端口或 Docker 上卡住了,把报错截图和你运行的命令(隐藏密钥)发到社区(加入社区),大家会一起帮你看。我们在深圳做本地大模型机器的选型、采购、组装和实测,也可以帮你规划“一台机器多个人共用”的方案;先聊需求,不强制购买。
