mirror of
https://github.com/jkaninda/mysql-bkup.git
synced 2025-12-06 21:49:40 +01:00
2.5 KiB
2.5 KiB
title, layout, parent, nav_order
| title | layout | parent | nav_order |
|---|---|---|---|
| Backup | default | How Tos | 1 |
Backup database
To backup the database, you need to add backup command.
{: .note }
The default storage is local storage mounted to /backup. The backup is compressed by default using gzip. The flag disable-compression can be used when you need to disable backup compression.
{: .warning } Creating a user for backup tasks who has read-only access is recommended!
The backup process can be run in scheduled mode for the recurring backups. It handles recurring backups of mysql database on Docker and can be deployed as CronJob on Kubernetes using local, AWS S3 or SSH compatible storage.
services:
mysql-bkup:
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest`.
# Check https://github.com/jkaninda/mysql-bkup/releases
# for a list of available releases.
image: jkaninda/mysql-bkup
container_name: mysql-bkup
command: backup -d database
volumes:
- ./backup:/backup
environment:
- DB_PORT=3306
- DB_HOST=mysql
- DB_NAME=database
- DB_USERNAME=username
- DB_PASSWORD=password
# mysql-bkup container must be connected to the same network with your database
networks:
- web
networks:
web:
Backup using Docker CLI
docker run --rm --network your_network_name \
-v $PWD/backup:/backup/ \
-e "DB_HOST=dbhost" \
-e "DB_USERNAME=username" \
-e "DB_PASSWORD=password" \
jkaninda/mysql-bkup backup -d database_name
In case you need to use recurring backups, you can use --cron-expression "0 1 * * *" flag or BACKUP_CRON_EXPRESSION=0 1 * * * as described below.
services:
mysql-bkup:
# In production, it is advised to lock your image tag to a proper
# release version instead of using `latest`.
# Check https://github.com/jkaninda/mysql-bkup/releases
# for a list of available releases.
image: jkaninda/mysql-bkup
container_name: mysql-bkup
command: backup -d database --cron-expression "0 1 * * *"
volumes:
- ./backup:/backup
environment:
- DB_PORT=3306
- DB_HOST=mysql
- DB_NAME=database
- DB_USERNAME=username
- DB_PASSWORD=password
- BACKUP_CRON_EXPRESSION=0 1 * * *
#Delete old backup created more than specified days ago
#- BACKUP_RETENTION_DAYS=7
# mysql-bkup container must be connected to the same network with your database
networks:
- web
networks:
web: