温馨提示×

centos docker怎么备份数据

小樊
47
2026-09-05 22:15:24
栏目: 智能运维

CentOS 上使用 Docker 备份数据,常见有几种方式,取决于你用的是容器卷(volume)绑定挂载(bind mount)还是数据库容器。下面按场景给你整理一份实用指南。


一、查看 Docker 数据位置(先确认)

docker ps
docker inspect 容器名 | grep -i mount

通常数据在:

  • Volume/var/lib/docker/volumes/xxx/_data
  • Bind mount:你指定的宿主机目录

二、备份 Docker Volume(最常见)

方法 1:使用临时容器备份(推荐)

docker run --rm \
  -v 你的volume名:/data \
  -v /backup:/backup \
  centos \
  tar czf /backup/volume-backup.tar.gz -C /data .

恢复:

docker run --rm \
  -v 你的volume名:/data \
  -v /backup:/backup \
  centos \
  tar xzf /backup/volume-backup.tar.gz -C /data

方法 2:直接打包 volume 目录(简单)

cd /var/lib/docker/volumes/你的volume名/_data
tar czf /backup/volume-backup.tar.gz .

⚠️ 不推荐在容器运行时直接操作


三、备份数据库容器(MySQL / PostgreSQL)

MySQL 示例

docker exec mysql容器 \
  mysqldump -uroot -p密码 数据库名 > /backup/mysql.sql

恢复:

docker exec -i mysql容器 \
  mysql -uroot -p密码 数据库名 < /backup/mysql.sql

PostgreSQL 示例

docker exec postgres容器 \
  pg_dump -U 用户 数据库名 > /backup/pg.sql

四、备份整个容器(不推荐但可用)

docker commit 容器名 备份镜像
docker save 备份镜像 > /backup/container.tar

⚠️ 不包含 volume 数据


五、定时自动备份(crontab)

crontab -e

示例(每天 2 点):

0 2 * * * docker run --rm -v vol:/data -v /backup:/backup centos tar czf /backup/$(date +\%F).tar.gz -C /data .

六、推荐实践 ✅

  • ✅ 数据库:专用 dump 命令
  • ✅ 文件数据:volume + tar
  • ✅ 备份放:异地 / 云存储
  • ❌ 不要直接拷 /var/lib/docker

如果你能告诉我:

  • 用的 什么服务(MySQL / Nginx / 自建应用)
  • 数据是 volume 还是目录
  • 是否要 自动备份

我可以给你一套直接可执行的脚本

0