温馨提示×

centos如何备份docker

小樊
35
2026-10-14 14:20:14
栏目: 智能运维

在 CentOS 上备份 Docker,通常分为 备份镜像、容器、数据卷、Docker 配置 几个部分。下面按实际运维场景给你一套常用方案。


一、备份 Docker 镜像

1. 查看已有镜像

docker images

2. 导出单个镜像

docker save -o nginx.tar nginx:latest

3. 导出多个镜像

docker save -o images.tar nginx:latest mysql:5.7 redis:6

4. 恢复镜像

docker load -i images.tar

✅ 适合:系统重装、迁移服务器


二、备份容器(含配置)

注意:容器本身不推荐直接备份,推荐用“提交为镜像”的方式

1. 将运行中的容器提交为镜像

docker commit my_nginx my_nginx_backup

2. 导出该镜像

docker save -o my_nginx_backup.tar my_nginx_backup

3. 恢复

docker load -i my_nginx_backup.tar
docker run -d --name my_nginx my_nginx_backup

✅ 适合:自定义容器(装了很多东西)


三、备份 Docker 数据卷(非常重要)

1. 查看数据卷

docker volume ls

2. 备份某个 volume(如 mysql_data)

docker run --rm \
  -v mysql_data:/data \
  -v /backup:/backup \
  busybox \
  tar czf /backup/mysql_data.tar.gz -C /data .

3. 恢复 volume

docker run --rm \
  -v mysql_data:/data \
  -v /backup:/backup \
  busybox \
  tar xzf /backup/mysql_data.tar.gz -C /data

✅ 数据库必须这么备份


四、备份 Docker 自身配置(CentOS)

1. Docker 主目录

/var/lib/docker

⚠️ 不推荐直接 cp,除非 Docker 已停止

2. 停止 Docker 后备份(完整)

systemctl stop docker
tar czf docker_backup.tar.gz /var/lib/docker
systemctl start docker

五、备份 docker-compose 项目(推荐)

如果你用 docker-compose:

/your/project
├── docker-compose.yml
├── .env
└── data/

直接备份整个目录:

tar czf project_backup.tar.gz /your/project

恢复:

docker-compose up -d

✅ 最推荐方式


六、自动化备份脚本示例

#!/bin/bash
DATE=$(date +%F)
docker save -o /backup/images_$DATE.tar $(docker images -q)
tar czf /backup/volumes_$DATE.tar.gz /var/lib/docker/volumes

加 crontab:

0 3 * * * /root/backup_docker.sh

七、总结建议

内容 是否必须 方法
镜像 ✅ docker save
容器 ⚠️ commit
数据卷 ✅✅ tar + volume
compose ✅ 直接备份目录
Docker 本身 ❌ 停止后备份

如果你能告诉我:

  • 是 数据库容器 还是 Web 容器
  • 是否使用 docker-compose
  • 是否要 定时自动备份

我可以给你一套 完全定制化的备份方案。

0 踩