@@ -50,6 +50,7 @@ docker-backup-menu
5050- ** 一键恢复** :在新服务器上快速恢复容器和数据
5151- ** 增量支持** :智能识别和备份变更的数据
5252- ** 交互式菜单** :图形化操作界面,新手友好
53+ - ** Docker Compose支持** :自动检测并备份docker-compose项目
5354
5455### 高级特性
5556- ** 灵活配置** :支持配置文件和命令行参数
@@ -319,6 +320,30 @@ docker-cleanup --preview 30
319320
320321## 🖥️ 交互式菜单详解
321322
323+ ### Docker Compose自动检测
324+
325+ 备份脚本会自动检测容器是否由docker-compose管理:
326+
327+ #### 检测方法
328+ 1 . ** 容器标签检测** :检查` com.docker.compose.project ` 和` com.docker.compose.service ` 标签
329+ 2 . ** 容器名称模式** :识别` project_service_number ` 命名模式
330+ 3 . ** 网络名称检测** :查找` project_default ` 网络模式
331+
332+ #### 检测结果
333+ - ** Docker Compose容器** :自动备份compose文件、环境配置,生成compose恢复脚本
334+ - ** 普通容器** :使用传统的docker run命令恢复
335+
336+ #### 备份内容差异
337+ | 内容 | 普通容器 | Docker Compose容器 |
338+ | ------| ----------| -------------------|
339+ | 容器配置 | ✓ | ✓ |
340+ | 数据卷 | ✓ | ✓ |
341+ | 挂载点 | ✓ | ✓ |
342+ | 镜像 | ✓ | ✓ |
343+ | docker-compose.yml | ✗ | ✓ |
344+ | .env文件 | ✗ | ✓ |
345+ | 恢复方式 | docker run | docker-compose up |
346+
322347### 菜单功能概览
323348
324349运行 ` docker-backup-menu ` 后,你将看到一个包含18个选项的交互式菜单:
@@ -413,6 +438,7 @@ EXCLUDE_CONTAINER_LABELS="backup=false"
413438
414439## 📁 备份目录结构
415440
441+ ### 普通Docker容器
416442```
417443backup_dir/
418444├── config/ # 容器配置文件
@@ -438,6 +464,23 @@ backup_dir/
438464└── backup_summary.txt # 备份摘要
439465```
440466
467+ ### Docker Compose容器
468+ ```
469+ backup_dir/
470+ ├── config/ # 容器配置文件
471+ ├── volumes/ # 数据卷备份
472+ ├── mounts/ # 挂载点备份
473+ ├── logs/ # 容器日志
474+ ├── compose/ # Docker Compose文件
475+ │ ├── docker-compose.yml # 主配置文件
476+ │ ├── .env # 环境变量文件
477+ │ ├── compose_info.txt # 项目和服务信息
478+ │ └── compose_directory.txt # 原始目录路径
479+ ├── project_service_image.tar.gz # 容器镜像(完整备份)
480+ ├── restore.sh # 自动恢复脚本(支持docker-compose)
481+ └── backup_summary.txt # 备份摘要
482+ ```
483+
441484## 🔧 实际使用示例
442485
443486### 场景1:Web应用备份
@@ -451,7 +494,25 @@ scp -r nginx_20231201_120000/ user@new-server:/tmp/
451494ssh user@new-server " cd /tmp && ./docker-restore.sh nginx_20231201_120000"
452495```
453496
454- ### 场景2:定期自动备份
497+ ### 场景2:Docker Compose项目备份
498+
499+ ``` bash
500+ # 1. 备份docker-compose项目(自动检测)
501+ ./docker-backup.sh -f myproject_web_1
502+
503+ # 2. 备份会包含:
504+ # - 容器配置和数据
505+ # - docker-compose.yml文件
506+ # - .env环境文件
507+ # - 其他配置文件
508+
509+ # 3. 在新服务器恢复
510+ scp -r myproject_web_1_20231201_120000/ user@new-server:/tmp/
511+ ssh user@new-server " cd /tmp/myproject_web_1_20231201_120000 && ./restore.sh"
512+ # 恢复脚本会自动使用docker-compose启动服务
513+ ```
514+
515+ ### 场景3:定期自动备份
455516
456517#### 方法1:使用系统服务(推荐)
457518``` bash
@@ -506,7 +567,7 @@ chmod +x /usr/local/bin/docker-backup-sync.sh
506567echo " 0 3 * * * /usr/local/bin/docker-backup-sync.sh" | sudo crontab -
507568```
508569
509- ### 场景3 :生产环境迁移
570+ ### 场景4 :生产环境迁移
510571
511572``` bash
512573# 1. 在源服务器备份所有容器
531592EOF
532593```
533594
534- ### 场景4 :容器迁移到新名称
595+ ### 场景5 :容器迁移到新名称
535596
536597``` bash
537598# 备份原容器
0 commit comments