以下是在Debian系统上备份Docker数据的常用方法:
使用docker save命令将镜像保存为tar文件:
docker save -o /backup/docker-images-backup.tar $(docker images -q)
或备份单个镜像:
docker save -o my-image-backup.tar my-image:latest
docker export -o /backup/container-backup.tar <容器ID或名称>
docker commit <容器ID> backup-image:latest
docker save -o backup-image.tar backup-image:latest
docker volume ls # 获取卷名
docker cp <卷名>:/data /backup/volume-data # 复制数据到宿主机
docker volume save(部分场景支持):docker volume save <卷名> -o volume-backup.tar
备份Docker守护进程配置和网络配置:
sudo cp /etc/docker/daemon.json /backup/
sudo cp -r /etc/docker/network /backup/
#!/bin/bash
BACKUP_DIR="/backup/docker-backup-$(date +%Y%m%d%H%M%S)"
mkdir -p "$BACKUP_DIR"
# 备份镜像
docker images -q | xargs -I {} docker save -o "$BACKUP_DIR/{}.tar" {}
# 备份容器
for container in $(docker ps -aq); do
docker export "$container" > "$BACKUP_DIR/${container}.tar"
done
# 备份卷
for volume in $(docker volume ls -q); do
docker cp "$volume:/data" "$BACKUP_DIR/${volume}-data"
done
# 备份配置
sudo cp /etc/docker/daemon.json "$BACKUP_DIR/"
sudo cp -r /etc/docker/network "$BACKUP_DIR/"
echo "备份完成,文件保存在 $BACKUP_DIR"
恢复时使用docker load、docker import等命令逆向操作即可,具体可参考各命令的官方文档。