🔄 更新 Open WebUI
为什么我的 Open WebUI 没有更新?
要将本地 Docker 安装的 Open WebUI 更新到最新版本,您可以使用 Watchtower 或手动更新容器。请按照以下提供的步骤之一进行操作,以指导您更新现有的 Open WebUI 镜像。
手动更新
-
停止并移除当前容器:
这将停止正在运行的容器并将其移除,但不会删除存储在 Docker 卷中的数据。(在整个更新过程中,如果您的容器名称不同,请用实际名称替换
open-webui。)
docker rm -f open-webui
-
拉取最新的 Docker 镜像:
这将更新 Docker 镜像,但不会更新正在运行的容器或其数据。
docker pull ghcr.io/open-webui/open-webui:main
删除 Docker 卷中的现有数据(除非绝对必要,否则不建议这样做!)。如果不需要此步骤,请跳过并直接进入最后一步:
如果您希望从头开始,可以删除 Docker 卷中的现有数据。请注意,这会删除所有聊天记录和其他数据。
数据存储在一个名为 open-webui 的 Docker 卷中。您可以使用以下命令将其移除:
docker volume rm open-webui
-
使用更新后的镜像和现有的卷重新启动容器:
如果您没有删除现有数据,这将使用更新后的镜像和现有的数据启动容器。如果您删除了现有数据,这将使用更新后的镜像和一个新的空卷启动容器。对于 Nvidia GPU 支持,请在 docker run 命令中添加
--gpus all
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
使用 Watchtower 自动更新 Open WebUI
您可以使用 Watchtower 来自动化 Open WebUI 的更新过程。以下是三种选项:
选项 1:一次性更新
您可以将 Watchtower 作为一次性更新来停止当前容器,拉取最新镜像,并使用更新后的镜像和现有的卷启动一个新容器(对于 Nvidia GPU 支持,请在 docker run 命令中添加 --gpus all):
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
选项 2:作为独立容器运行 Watchtower
您可以将 Watchtower 作为独立容器运行,该容器会监控并更新您的 Open WebUI 容器:
docker run -d --name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -i 300 open-webui
这将以分离模式启动 Watchtower,每 5 分钟检查一次 Open WebUI 容器是否有更新。
选项 3:在 docker-compose.yml 文件中集成 Watchtower
您也可以在 docker-compose.yml 文件中集成 Watchtower,以实现对 Open WebUI 的自动化更新(对于 Nvidia GPU 支持,请在 docker run 命令中添加 --gpus all):
version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 300 open-webui
depends_on:
- open-webui
volumes:
open-webui:
在这个示例中,Watchtower 被集成到了 docker-compose.yml 文件中,并且每 5 分钟检查一次 Open WebUI 容器是否有更新。
Docker 卷中的持久数据
数据存储在一个名为 open-webui 的 Docker 卷中。虽然无法直接访问该卷的路径,但您可以使用以下命令查看卷的详细信息:
docker volume inspect open-webui
这将显示卷的详细信息,包括挂载点,通常位于 /var/lib/docker/volumes/open-webui/_data。