centos

centos docker数据怎么备份

小樊
52
2025-08-14 14:03:50
栏目: 智能运维

以下是在CentOS上备份Docker数据的常用方法:

一、备份Docker数据目录(核心数据)

Docker默认数据存储路径为/var/lib/docker,可通过tar命令打包备份:

sudo tar -czvf docker-backup-$(date +%Y%m%d%H%M%S).tar.gz /var/lib/docker

将备份文件存储到安全路径(如外部硬盘或云存储)。

二、备份镜像

使用docker save命令将镜像保存为tar文件:

docker images -q | xargs docker save -o /backup/docker-images-$(date +%Y%m%d%H%M%S).tar

或备份单个镜像:

docker save -o my-image-backup.tar my-image:tag

三、备份容器

通过docker export导出容器文件系统快照(不包含元数据):

docker ps -aq | xargs -I {} docker export -o container-{}.tar {}

或使用docker commit将容器保存为新镜像后备份:

docker ps -aq | xargs -I {} docker commit {} backup-image-{}
docker save -o backup-images.tar backup-image-*

四、备份卷(持久化数据)

  1. 列出所有卷:docker volume ls
  2. 挂载卷到临时目录并备份:
docker volume ls | awk '{print $1}' | xargs -I {} sh -c 'docker run --rm -v {}:/$$_volume alpine tar czvf /backup/{}_backup.tar /$$_volume'

五、备份网络配置

导出网络配置为JSON文件:

docker network ls | awk '{print $1}' | xargs -I {} docker network inspect {} > network-{}.json

六、自动化备份脚本

可编写脚本整合上述操作,例如:

#!/bin/bash
# 备份镜像
docker images -q | xargs docker save -o /backup/docker-images-$(date +%Y%m%d%H%M%S).tar
# 备份容器
docker ps -aq | xargs -I {} docker export -o /backup/container-{}.tar {}
# 备份卷
docker volume ls | awk '{print $1}' | xargs -I {} sh -c 'docker run --rm -v {}:/$$_volume alpine tar czvf /backup/{}_backup.tar /$$_volume'
echo "Backup completed!"

赋予执行权限后运行:chmod +x backup.sh && ./backup.sh

注意事项

0
看了该问题的人还看了