如何把 Docker 游戏服务器真正做成可迁移备份:DST 与 Palworld 实战
Docker 游戏服务器看起来很好迁移:保存镜像、复制配置和存档,再到另一台机器上重新启动容器即可。 真正实践之后会发现,事情远没有这么简单。 一个真正合格的迁移包,需要回答的并不是: 文件有没有备份? 而是: 如果原服务器彻底不存在,只剩下这个备份包,能不能在另一台 Linux + Docker 主机上重新启动服务器,并继续读取原来的世界和存档? 这两者之间存在很大差别。 本文以 Don’t Starve Together(DST) 和 Palworld 两套 Docker 游戏服务器为例,介绍一套相对可靠的 Docker 游戏服务器迁移方法。 所有涉及实际服务器路径、用户名、端口、域名、镜像摘要、世界 ID、时间戳等信息均已脱敏。 一、首先明确什么叫“可迁移备份” 普通备份可能只包含: 这样的备份当然有价值,但还不能证明它可以恢复。 完整迁移至少涉及四个部分: 进一步说,一个理想的迁移包应该具备: 其中最关键的是: 不能依赖原服务器上仍然存在的东西。 例如,如果恢复过程中仍然需要: 那么这并不是严格意义上的自包含迁移。 因为几年之后: 因此,Docker image 本身也应该成为备份的一部分。 二、先搞清楚数据到底在哪里 Docker 应用的数据并不一定存储在 Docker volume 中。 实际部署中常见三种情况。 1. Named Volume 例如: 这种情况下,需要单独备份 …