# 查看运行中的容器
docker ps
# 提交容器为新镜像
docker commit <container_id> <backup_image_name>:<tag>
# 示例
docker commit my_container myapp_backup:v1
# 导出容器文件系统
docker export <container_id> > container_backup.tar
# 或者使用-o选项
docker export -o container_backup.tar <container_id>
# 先提交为镜像(如方法1),然后保存
docker save -o image_backup.tar <image_name>:<tag>
# 示例
docker save -o myapp_backup.tar myapp_backup:v1
# 加载保存的镜像
docker load -i image_backup.tar
# 查看已加载的镜像
docker images
# 从镜像创建新容器
docker run -d --name restored_container <image_name>:<tag>
# 导入tar文件创建新镜像
cat container_backup.tar | docker import - restored_image:latest
# 然后运行新容器
docker run -d --name restored_container restored_image:latest
# 创建临时容器挂载数据卷并备份
docker run --rm --volumes-from <container_name> -v $(pwd):/backup busybox tar cvf /backup/backup.tar /path/to/volume
# 创建临时容器挂载数据卷并恢复
docker run --rm --volumes-from <new_container_name> -v $(pwd):/backup busybox tar xvf /backup/backup.tar -C /path/to/volume
#!/bin/bash
# 定义变量
CONTAINER_NAME="my_app_container"
BACKUP_DIR="/opt/docker_backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
# 创建备份目录
mkdir -p $BACKUP_DIR
# 提交容器为镜像
docker commit $CONTAINER_NAME ${CONTAINER_NAME}_backup:${TIMESTAMP}
# 保存镜像为tar文件
docker save -o ${BACKUP_DIR}/${CONTAINER_NAME}_${TIMESTAMP}.tar ${CONTAINER_NAME}_backup:${TIMESTAMP}
# 清理临时镜像
docker rmi ${CONTAINER_NAME}_backup:${TIMESTAMP}
# 保留最近7天备份,删除旧备份
find $BACKUP_DIR -name "${CONTAINER_NAME}_*.tar" -type f -mtime +7 -delete
通过以上方法,您可以有效地在Linux系统上备份和恢复Docker容器及其数据。