温馨提示×

Debian Docker 容器如何备份

小樊
60
2025-09-13 06:03:32
栏目: 智能运维

以下是在Debian系统上备份Docker容器的常用方法:

一、备份容器为镜像

  1. 停止容器
    sudo docker stop <容器名或ID> 
  2. 提交容器为镜像
    sudo docker commit <容器名或ID> <备份镜像名>:<标签> 
  3. 保存镜像为tar文件
    sudo docker save -o <备份文件名>.tar <备份镜像名>:<标签> 
    恢复:用docker load -i <备份文件名>.tar加载镜像,再通过docker run启动容器。

二、直接备份容器文件系统

  1. 导出容器为tar文件
    sudo docker export <容器名或ID> > <备份文件名>.tar 
  2. 导入容器
    cat <备份文件名>.tar | sudo docker import - <新容器名> 
    注意:此方法不会保留容器的网络配置和元数据。

三、备份容器数据卷

  1. 备份数据卷内容
    • 若使用命名卷,可通过挂载到临时容器备份:
      sudo docker run --rm -v <卷名>:/volume -v /backup:/backup alpine tar cvf /backup/<卷名>-backup-$(date +%Y%m%d).tar /volume 
    • 若使用绑定挂载,直接备份主机目录即可。

四、备份Docker配置

  1. 备份Docker守护进程配置
    sudo cp /etc/docker/daemon.json /backup/daemon.json 
  2. 备份网络配置
    sudo cp -r /etc/docker/network /backup/network 
    恢复:将备份文件复制回原路径并重启Docker。

五、自动化备份脚本

可编写脚本定期备份镜像、容器和卷,例如:

#!/bin/bash BACKUP_DIR="/backup/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR docker save $(docker images -q) > $BACKUP_DIR/images.tar docker volume ls -q | xargs -I {} sudo docker run --rm -v {}:/volume -v $BACKUP_DIR:/backup alpine tar cvf /backup/{}-backup.tar /volume 

将脚本设为定时任务(如通过cron)实现定期备份。

注意事项

  • 数据一致性:备份前停止容器,避免数据损坏。
  • 存储安全:将备份文件存放在安全位置(如外部存储或云存储),并定期测试恢复流程。
  • 优先使用卷:重要数据建议通过Docker卷持久化存储,便于单独备份和恢复。

0