文章内容
2025/12/5 0:42:38,作 者: 黄兵
Docker 迁移实例
在上篇文章中,我们详细讲述了 Docker 迁移的三种方式:Docker 迁移,这篇文章中我们以实际案例看看如何迁移一个运行的实例。
首先我们登录 A 服务器,看到这个实例的目录结构,同时第三层目录有一个 compose.yaml 文件:

🧩 一、你的实际数据结构分析
| 服务名 | 镜像 | 数据持久化方式 | 说明 |
|---|---|---|---|
web |
ghcr.io/cedar2025/xboard:new |
本地挂载卷 .docker/.data/、storage/logs、storage/theme、plugins |
这里面包含 SQLite 数据 |
horizon |
同上 | 同样挂载 .docker/.data/ 和 plugins |
共享相同的持久化路径 |
redis |
redis:7-alpine |
本地挂载 .docker/.data/redis:/data |
Redis 数据保存在 .docker/.data/redis |
✅ 二、结论:你已经使用了“持久化挂载卷”
这意味着:
所有 Redis 数据、SQLite 数据、日志、插件等都已经保存在宿主机当前目录结构中,而不是仅存在容器内部!
👉 因此,你的迁移根本不需要 docker commit
你只需要迁移这些持久化文件目录即可。
📦 三、要迁移的内容
在项目目录下(含 docker-compose.yml 的同级目录)执行:
tar czvf xboard_backup_$(date +%Y%m%d).tar.gz \ .env \ .docker/.data/ \ storage/ \ plugins/
这会打包以下内容:
| 路径 | 含义 |
|---|---|
.env |
应用环境变量配置 |
.docker/.data/redis/ |
Redis 数据 |
.docker/.data/ |
SQLite 数据(以及应用临时数据) |
storage/ |
日志、主题文件 |
plugins/ |
插件代码 |
🖥️ 在目标服务器上:
-
安装 Docker 与 docker-compose(如果还没装),具体安装过程可以查看这篇文章:Ubuntu 24.04 如何安装 Docker,Ubuntu 24.04 安装 Docker Compose v2
-
上传你的项目文件(包含
docker-compose.yml) -
解压你的数据包:
我们按照原来的服务器目录,新建文件夹,在第三层文件夹下面将
docker-compose.yml和xboard_backup_20251205.tar.gz复制过去:
- 复制完成之后,我们在这个目录执行:
tar xzvf xboard_backup_20251205.tar.gz

- 解压完成之后,启动容器:
docker compose up -d

✅ 启动后,Redis 会自动加载
.docker/.data/redis/dump.rdb
✅ SQLite 数据会直接从.docker/.data/中读取
✅ 所有配置都与原环境完全一致
🧰 五、总结
| 内容 | 你当前状态 | 是否需额外操作 |
|---|---|---|
| Redis 数据 | 已挂载 .docker/.data/redis |
✅ 自动迁移 |
| SQLite 数据 | 存在 .docker/.data/ |
✅ 自动迁移 |
应用配置 .env |
本地文件 | ✅ 打包迁移 |
| 镜像 | 来自 GitHub Container Registry | 🚀 可自动拉取,无需打包 |
| docker-compose.yml | 部署定义文件 | ✅ 保留即可 |
✅ 总结一句话:
你只需复制
.env、.docker/.data/、storage/、plugins/这四个目录文件夹到新机器,再执行docker-compose up -d,所有服务(含 Redis 与 SQLite 数据)会无缝恢复。
其它相关推荐:
评论列表