docker-backup
1. 备份容器数据卷(Volumes)
查找数据卷:
1 |
|
你可以看到容器挂载的 volume 路径和信息。
备份 Volume 内容:
假设 Volume 名为 my_volume
:
1 |
|
这样会把 volume 的内容压缩到当前目录下 my_volume.tar.gz
文件。
2. 备份容器镜像
获取当前容器的镜像名称:
1 |
|
例如:my_image:latest
导出镜像:
1 |
|
3. 导出容器配置
由于 docker export 只会导出容器文件系统,不包含端口、环境变量等配置,推荐用 docker-compose
管理,保持配置可移植。如果没有 compose,可以自己导出相关参数:
查看容器启动参数:
1 |
|
或
1 |
|
也可以用 docker-capture
工具简化命令导出。
建议手动记录下来或写成 docker-compose.yml
。
4. 迁移到新主机
A. 拷贝所有备份文件到新主机
此处用 scp/sftp 等工具即可。
B. 恢复镜像:
1 |
|
C. 恢复数据卷内容:
- 在新主机创建 Volume:
1
docker volume create my_volume
- 解压还原:
1
docker run --rm -v my_volume:/volume -v $(pwd):/backup ubuntu tar xzvf /backup/my_volume.tar.gz -C /volume
D. 根据配置参数/compose 文件重建容器:
- 如果有 compose 文件,直接运行
1
docker-compose up -d
- 如果单独用命令,可以参考之前记录的启动参数进行
docker run
。
5. 其它场景
- 也可用 Docker 的export/import。不过这样会丢失 Volume 挂载的数据和部分元信息,不推荐用于迁移重要服务。
- 生产环境建议所有重要数据都用 Volume 持久化,避免直接将数据写入容器本地。
小结(简要步骤)
- 导出镜像:
docker save
- 备份 volume:用 tar 归档
- 记录/导出容器配置
- 文件传输到目标主机
- 恢复镜像:
docker load
- 恢复 volume:tar 解压
- 按配置重建容器
这样即可在新主机完整还原运行环境和数据。
docker-backup
https://mfzzf.github.io/2025/04/17/docker-backup/