香港/韩国云服务器、独立服务器租用

Open WebUI迁移服务器/Docker导出导入

自营机房/高防服务器/高防VPS/美国高防/洛杉矶VPS/洛杉矶高防服务器

很早装了个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

本站QQ群:683851361,联系我:zrblog@qq.com

分享到
便宜VPS/10美元VPS/洛杉矶、圣何塞等多个机房