以下是更新 Open WebUI 的标准步骤:
第一步:备份数据(以防万一)
虽然正常更新不会丢失数据,但建议先确认你的数据是否挂载在宿主机上。通常在运行命令里会有 -v open-webui:/app/backend/data 这样的参数。
第二步:停止并删除旧容器
你需要先停掉正在运行的旧版本容器。
Bash
停止容器
docker stop open-webui
删除容器(这不会删除你的数据卷/聊天记录)
docker rm open-webui
第三步:拉取最新镜像
不要手动处理 .zip 包,直接让 Docker 从官方仓库获取最新版:
Bash
docker pull ghcr.io/open-webui/open-webui:main
第四步:使用相同的参数重新启动
使用你最初安装时的命令重新启动。如果你不记得命令了,以下是官方推荐的标准启动命令(包含数据持久化):
Bash
docker run -d -p 3000:8080
--add-host=host.docker.internal:host-gateway
-v open-webui:/app/backend/data
--name open-webui
ghcr.io/open-webui/open-webui:main
如果你非要使用 .zip 包(不推荐)
如果你是因为网络环境无法连接 GitHub 或 Docker Hub 才下载的压缩包,那么这个压缩包通常是源代码。要使用它,你需要自己构建镜像:
解压 zip 包。
进入解压后的目录(里面应该有一个 Dockerfile)。
构建镜像:
Bash
docker build -t open-webui:custom .
启动:使用你刚才构建的 open-webui:custom 标签来运行容器。
💡 为什么不建议在容器内直接解压更新?
Docker 镜像是分层存储的(只读),你在运行中的容器里解压文件,只是在最上面的“可写层”做了修改。
无法维护:你很难知道哪些文件是旧的,哪些是新的。
体积臃肿:容器会变得越来越大。
一删即失:一旦执行 docker rm,你辛苦解压进去的文件就全没了。