很早装了个Open WebUI,不过那台小鸡硬盘小,每次看到还剩2G磁盘空闲就很纠结,想迁移又觉得重新加那些模型和配置太麻烦,今天记录下直接导出导入避免复杂配置。
因为我是Docker部署的,下面的过程也是基于Docker部署操作。
文章目录
一、导出和导入容器
这是最简单的,但是对于我不合适,因为我剩余硬盘太小了,导出容器还不到一半就提示磁盘空间满了,但是过程还是记录下。
1.查看容器ID(<container_id>)
docker ps
#查看卷名称
docker volume ls
2.导出容器
$docker export bc130fb8a7af > container.tar #假设container_id是bc130fb8a7af
运行上述命令后,当前目录下将生成一个名为 container.tar 的文件,该文件包含了完整的容器文件系统。
3.导入容器
先将上一步到处的tar文件传入新服务器,然后执行命令导入
docker import container.tar
运行上述命令后,Docker将会导入容器文件并创建一个新的Docker镜像。
我们还可以使用Docker迁移工具docker checkpoint和docker restore命令来导出和导入,跟上面相似。
二、备份Docker卷和Open WebUI模型目录并导入
这种方式备份内容相对少一些,适合我这种空间剩余不多的,我就是通过这个操作迁移到另一台服务器完成。
1.查看数据存储位置
docker volume inspect open-webui
可以得到类似如下:
"Mountpoint": "/var/lib/docker/volumes/open-webui/_data"
说明数据在/var/lib/docker/volumes/open-webui/_data 目录
容器内数据路径在/app/backend/data,可以通过下面的命令进入容器查看
docker exec -it open-webui /bin/bash
然后在容器执行:
ls /app/backend/data
2.导出数据
a.先停止容器
docker stop openwebui
b.复制卷内容到宿主机
docker run --rm -v open-webui:/data -v $(pwd):/backup alpine tar -czvf /backup/openwebui_backup.tar.gz /data
这会在当前目录生成 openwebui_backup.tar.gz 压缩包。
3.导入到新服务器
a.新服务器创建同名卷
docker volume create open-webui
b.将前面在旧服务器备份的压缩包传入到新服务器
c.解压备份到新卷
docker run --rm -v open-webui:/data -v $(pwd):/backup alpine tar -xzvf /backup/openwebui_backup.tar.gz
d.启动容器
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
如果遇到权限问题
docker exec -it open-webui chmod -R 777 /app/backend/data
由于我之前在新服务器装过Open WebUI,有相同名称的容器,所以启动容器报错:
docker: Error response from daemon: Conflict. The container name "/open-webui" is already in use by container "5c6cbccd7c71f47837f9c7a90c24d7fee3b927039538ee87debcee8b285ba622". You have to remove (or rename) that container to be able to reuse that name. Run 'docker run --help' for more information
这时候我们可以删除旧容器重新运行
docker ps –a #查看所有容器 docker stop open-webui # 停止容器(如果还在运行) docker rm open-webui # 删除容器
#重新运行容器
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
如果不想删除容器,也可以用一个新的容器名
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui-new --restart always ghcr.io/open-webui/open-webui:main









![[黑五]vmiss:全场VPS/独立服务器7折起,美国/韩国/日本/香港VPS年付106元起,可选CN2 GIA/AS9929/CMIN2线路-赵容部落](https://www.zrblog.net/wp-content/uploads/2022/05/vmiss.png)
![[黑五]HostDare低至3.5折+双倍内存+双倍流量,洛杉矶VPS年付9.1美元起,可选AMD EPYC,可选CN2 GIA+AS9929+CMIN2线路-赵容部落](https://www.zrblog.net/wp-content/uploads/2016/06/hostdare.png)
![[11.11]搬瓦工全场8.9折优惠码,可选香港/日本/美国/加拿大/荷兰/阿联酋等多机房,大带宽CN2 GIA线路-赵容部落](https://www.zrblog.net/wp-content/uploads/2013/11/bandwagonhost.jpg)