Halo 用 Docker 部署时,文章、配置、附件都落在持久化目录或外部数据库中。如果只删容器、却没有正确挂载/备份数据卷,重建后会看到“站点空了”。

和 WordPress 的差异

  • WordPress 常见把 /var/www/html 整目录挂出去,重建容器后文件还在。
  • Halo 2.x 依赖 ~/.halo2(或你映射的数据目录)以及数据库;漏挂载或误删卷就会丢内容。

重建前最低备份清单

  1. 停止服务:docker compose stop
  2. 备份 Halo 数据目录(如 ./halo2
  3. 备份数据库目录或执行数据库 dump
  4. 备份 docker-compose.yml 与环境变量文件
  5. 确认备份可解压/可恢复后,再重建
ts=$(date +%Y%m%d-%H%M%S)
tar -czf halo-backup-$ts.tgz docker-compose.yml halo2 db .env 2>/dev/null || tar -czf halo-backup-$ts.tgz docker-compose.yml halo2 db

注意:迁移或升级镜像前先做一次可回滚备份;只依赖“容器还在”是不够的。