# 查看运行中的容器
docker ps
# 提交容器为新镜像
docker commit <container_id> backup-image:<tag>
# 保存镜像为tar文件
docker save -o backup.tar backup-image:<tag>
# 导出容器文件系统为tar包
docker export <container_id> > container-backup.tar
# 创建数据卷备份
docker run --rm --volumes-from <container_name> -v $(pwd):/backup ubuntu tar cvf /backup/volume-backup.tar /volume_data
# 停止容器确保一致性
docker stop <container_name>
# 备份容器配置和数据
docker inspect <container_name> > container-config.json
docker cp <container_name>:/ /path/to/backup/folder/
# 重新启动容器
docker start <container_name>
# 加载备份的镜像
docker load -i backup.tar
# 运行新容器
docker run -d --name restored-container backup-image:<tag>
# 导入容器文件系统
cat container-backup.tar | docker import - restored-image:<tag>
# 运行新容器
docker run -d --name restored-container restored-image:<tag>
# 创建新容器
docker run -d --name new-container -v /volume_data ubuntu
# 恢复数据
docker run --rm --volumes-from new-container -v $(pwd):/backup ubuntu tar xvf /backup/volume-backup.tar
#!/bin/bash
# 容器备份脚本
BACKUP_DIR="/opt/docker-backups"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
# 备份所有运行中的容器
for container in $(docker ps -q); do
name=$(docker inspect --format='{{.Name}}' $container | sed 's/\///g')
echo "备份容器: $name"
# 提交为镜像
docker commit $container ${name}-backup:$DATE
# 保存为tar文件
docker save -o $BACKUP_DIR/${name}-${DATE}.tar ${name}-backup:$DATE
# 清理临时镜像
docker rmi ${name}-backup:$DATE
done
# 备份所有数据卷
docker volume ls -q | while read volume; do
echo "备份数据卷: $volume"
docker run --rm -v $volume:/volume -v $BACKUP_DIR:/backup alpine tar czf /backup/${volume}-${DATE}.tar.gz -C /volume .
done
通过以上方法,您可以高效地管理和恢复Docker容器,确保业务连续性。