温馨提示×

Debian Docker如何备份数据

小樊
46
2025-08-12 02:40:49
栏目: 智能运维

以下是在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

二、备份容器

  1. 导出容器快照(保留文件系统状态):
docker export -o /backup/container-backup.tar <容器ID或名称>
  1. 通过提交为镜像备份(保留配置和状态):
docker commit <容器ID> backup-image:latest
docker save -o backup-image.tar backup-image:latest

三、备份数据卷

  1. 直接复制卷数据(适用于命名卷):
docker volume ls  # 获取卷名
docker cp <卷名>:/data /backup/volume-data  # 复制数据到宿主机
  1. 使用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 loaddocker import等命令逆向操作即可,具体可参考各命令的官方文档。

0