Бэкапы БД отдельным контейнером
container-db-backup — Docker-образ для регулярных бэкапов баз данных. Поддерживает PostgreSQL, MySQL/MariaDB, MongoDB, Redis, SQLite, MSSQL, CouchDB и InfluxDB. Бэкапы можно складывать в локальную папку, S3-compatible storage, MinIO, Wasabi или Azure.
Как работает
Ты добавляешь отдельный контейнер рядом с базой, задаёшь параметры через env-переменные, а он по расписанию делает dump. Пример для PostgreSQL:
services:
db-backup:
image: docker.io/tiredofit/db-backup:latest
volumes:
- ./backups:/backup
environment:
- DB01_TYPE=pgsql
- DB01_HOST=postgres
- DB01_NAME=app
- DB01_USER=app
- DB01_PASS=secret
- DEFAULT_BACKUP_INTERVAL=1440
- DEFAULT_COMPRESSION=ZSTD
DB01, DB02, DB03 — это разные backup job’ы. Так можно одним контейнером бэкапить несколько баз.
Что умеет
Можно настроить расписание, сжатие, checksum, шифрование, очистку старых архивов, pre/post hooks и уведомления при ошибках в email, Matrix, Mattermost или Rocket.Chat. Ручной запуск тоже есть:
docker exec -it db-backup backup-now
А для отдельной задачи:
docker exec -it db-backup backup01-now
Важный нюанс
Бэкап это не только файл в папке. Его нужно периодически проверять восстановлением. У образа есть restore-скрипт, но поддержка восстановления заявлена только для MariaDB, Postgres и MongoDB. Для остальных лучше заранее проверить свой сценарий руками.
Вывод
container-db-backup — удобный вариант, если хочется быстро добавить scheduled backups в Docker Compose без отдельного cron-скрипта. Но после настройки обязательно проверь restore, иначе это не бэкап, а просто архив с надеждой.
LinuxCamp | #utils
Обсуждение 6
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram