在使用 Docker 部署 Open WebUI 时,如何在更新容器的同时确保数据不丢失,始终是工程师们关注的焦点。每次拉取新版镜像、停止并重启容器时,如果没有正确挂载数据卷,配置和数据库数据极易流失,给生产环境带来不必要的麻烦。
本篇博客将带你深入解析 Docker 数据卷的使用方法,详细讲解如何通过命名数据卷(如 -v open-webui:/app/backend/data
)实现数据持久化,保证更新 Open WebUI 后依然无缝衔接历史数据。我们不仅会展示如何查看和验证数据卷的存在,还将分享最佳实践,确保每一次容器更新都能做到数据"更新无忧"。
无论你是 Docker 新手还是经验丰富的 DevOps 专家,都能在这篇文章中找到切实可行的解决方案,为你的 Open WebUI 部署保驾护航。
当搭建好了OpenwebUI项目后,配置了一些数据和用户登录信息,如果安装的时候用的是docker 安装的话,我的版本是0.3,目前最新版是0.5,如果直接删除docker安装的话,会把里面的数据删除掉。
![](https://i-blog.csdnimg.cn/direct/392b03ffc9184d0d8c20ec85d7b00e91.png)
验证数据卷是否存在 :
你可以使用以下命令来查看当前 Docker 管理的卷
docker volume ls
如果看到 open-webui
出现在列表中,说明数据卷已经存在并正在使用。
![](https://i-blog.csdnimg.cn/direct/abdbde0a2ee14ce49d42955e557ecd3e.png)
查看数据卷详情(可选) :
使用以下命令可以查看数据卷的挂载点等详细信息:
docker volume inspect open-webui
![](https://i-blog.csdnimg.cn/direct/4995a68af5c04e579bcce3488450b1ad.png)
那么来提供一个更新后保留数据的方法,
1,拉取最新的项目镜像
docker pull ghcr.io/open-webui/open-webui:main
![](https://i-blog.csdnimg.cn/direct/8a233b22234241a895574cc1c677f270.png)
2,停止并删除旧容器(数据卷不会被删除)
docker stop open-webui
docker rm open-webui
3,启动新容器,并挂载相同的数据卷
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
项目运行成功了,
![](https://i-blog.csdnimg.cn/direct/43533ba1dc8647968c96f8b99d42456d.png)
再看下版本,已经更新到了当前的最新版。
![](https://i-blog.csdnimg.cn/direct/032a543e42f043ff8df88c3b3a832c13.png)
而且以前低版本时配置的大模型名称数据也在
![](https://i-blog.csdnimg.cn/direct/56b722db9c3147c1a23ad2635a5ced76.png)