Docker 应用迁移到新 VPS,要带走哪些数据?

Compose 文件之外,还要迁移数据库、附件和密钥。先恢复新机并测试读写,最后切域名、处理旧订单。

更新于 2026-10-16

复制 compose.yaml 到新 VPS,数据库和上传文件不会跟着过去。迁移前先找出每项数据的存放位置,再分别备份部署配置、数据库和附件。

列出要恢复的东西

保留 Compose 文件、环境配置、应用密钥、绑定目录与命名卷信息,另外记录镜像版本。数据库、上传文件和附件通常需要分别保存;有些程序还把账号或配置放在 SQLite 文件中,不能漏掉。

内容核对位置恢复后检查
部署配置Compose、环境变量和密钥文件镜像、端口与连接地址
数据库专用数据库或应用本地文件账号、业务记录与权限
附件数据卷或绑定目录图片、下载与写入权限
域名入口代理、DNS 和外部白名单HTTPS 与回调

先按实际数据存放方式选恢复方法,再回到对应教程执行命令。下面几篇使用的版本、数据库和数据目录不同,不能把一个应用的备份命令直接套给另一个。

要迁移的应用除部署配置外,要带走什么新副本先检查什么
Vaultwarden 密码库对应教程采用 SQLite,需保存数据库、附件、密钥和完整数据目录原账号与记录、附件下载、新写入;真实客户端解密与同步还要另外核对
Miniflux 阅读器PostgreSQL 数据库;连接配置另存,目标实例先建好业务角色原订阅、历史文章、已读和收藏;只有 OPML 不能保留这些状态
Forgejo 私有 Git对应教程采用 SQLite,需保存整份应用数据,包含仓库、数据库、附件、配置和持久任务状态普通账号读取私库、原提交和附件、新 push 后重新 clone;只 clone 不等于服务备份
Paperless 文档库同版完整文档导出及部署配置、语言文件和凭据原件下载、中文检索、普通账号权限与新文件入库;导入后的时间字段和 API 令牌另按教程核对
Beszel 资源监控Hub 整份数据目录、密钥与 Agent 的配置、Token 和持久身份目录原系统以原身份重新连接、旧主机与容器历史,以及恢复后的新采样;同版本恢复先隔开正式 Agent 和通知出口

这些教程里的同版本恢复结果,不能代替跨版本升级验证。先让恢复副本使用独立目录、数据卷和入口,避免接收正式写入或向外发送邮件、通知、webhook;保留原实例,等读写与入口检查完成后再安排切换。

数据库和附件要对应同一时间

数据库使用对应工具导出或按官方说明备份,不把运行中的数据目录随便打包当成一致副本。需要同时保存数据库与附件的应用,按软件支持的方式暂停写入或建立一致的备份时间点。

同一台旧机保存的备份,在机器不可用时可能也取不到。迁移包放到独立位置,限制权限;包含密码的环境文件和数据库导出不要上传到公开仓库。

新机器先恢复数据,再开放访问

按应用文档恢复数据库及文件,确认目录权限和镜像版本。先在新机器检查配置:

docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100

docker compose config 输出可能含环境变量的值,不把完整输出公开分享。容器运行后检查实际数据库连接,登录一次,读取旧文件并新上传一个文件,确认数据能继续写入。

最后切域名,旧机留到检查完成

应用和 HTTPS 正常后再切换 DNS,协调最后一次数据同步与业务停写。新旧站同时写入各自数据库,会形成两份不同的数据;商城、笔记或文件应用都不能只靠 DNS 切换避免这个问题。

公网检查完成后,保留可回退的镜像、配置与备份,按计划处理旧机。恢复后数据条数、附件和关键业务操作都应检查,容器健康状态不能代替这些结果。

新机器要装得下数据和恢复副本

迁移目标需要支持镜像架构,并容纳数据、恢复文件和临时空间。参考Docker VPS 的资源清单选好配置后,先在新环境完成数据库、附件与入口验证,再协调最后一次写入。确认备份能恢复之后,才结束旧资源的账期。

把所有容器的内存、镜像架构、现有数据和恢复临时空间一起算,再买短周期套餐试恢复。需要复制测试环境时,可查看 Evoxt 的实例与克隆选项,核对当前套餐权限;需要云盘组合与扩容规划时,可比较 ECS 的计算与存储方案。旧机保留到读写和备份验证完成,平台副本不能代替应用的一致性备份。