【发布时间】:2020-03-18 07:42:22
【问题描述】:
我有一个在 centos 服务器上运行的 MYSQL 数据库容器。如何自动备份容器外的数据库?
【问题讨论】:
-
只需使用volumes 将您的数据库持久化到外部容器之外。还要检查一下:stackoverflow.com/questions/39175194/…
标签: docker docker-compose containers
我有一个在 centos 服务器上运行的 MYSQL 数据库容器。如何自动备份容器外的数据库?
【问题讨论】:
标签: docker docker-compose containers
如 cmets 中所述,请确保将卷用于数据文件夹。
用于备份:
#!/bin/bash
DATE=$(date '+%Y-%m-%d_%H-%M-%S')
docker exec <container name> /usr/bin/mysqldump -u <putdatabaseusername here> -p<PutyourpasswordHere> --all-databases > /<path to desired backup location>/$DATE.sql
if [[ $? == 0 ]]; then
find /<path to desired backup location>/ -mtime +10 -exec rm {} \;
fi
更改以下内容:
<container name> 到实际的数据库容器名称
<putdatabaseusername here> 给数据库用户
<PutyourpasswordHere> 到数据库密码
为备份文件创建一个目录并将/<path to desired backup location>/替换为实际路径
请注意,此脚本将保留备份 10 天,更改数字以反映您的需要。
重要提示:此脚本将密码存储在文件中,在生产中使用安全方式
【讨论】: