環境
mysql 8.0.17
docker 19.03.1
方法
まず、mysqlのコンテナの中に入って、doBackUp.shを作成する
その中身は、
chmod 755 doBackUp.sh
/usr/bin/mysqldump -u root -psecret aichi > ./var/lib/mysql/backUp.sql
crontabの設定を以下のように記述(毎日12:15分に自動バックアップ)
15 12 * * * /usr/bin/docker exec -u root -t mysql /bin/sh ./doBackUp.sh
sqlファイルが生成される場所について
docker-compose.ymlのvolumesの内容が以下の場合、
volumes:
- ./mysql/data:/var/lib/mysql
ホスト側では./mysql/data、コンテナ側では/var/lib/mysql
でデータが共有されている。
だから、シェルスクリプトであのようなパスを指定した。