以下是在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等命令逆向操作即可,具體可參考各命令的官方文檔。