Существует проект, который сильно упрощает бэкап данных при работе с Docker. Не нужно городить какие-то свои скрипты или использовать инструменты бэкапа общего пользования, которые не всегда удобно настраивать на работу с динамической инфраструктурой на основе контейнеров.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курcе по администрированию MikroTik. Автор курcа, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Docker-volume-backup может подключаться к volume и автоматически бэкапить его в локальную директорию, в S3, по WebDAV или по SSH. Вы можете настроить запуск бэкапа на постоянку, добавив отдельный образ с параметрами в docker-compose или выполнить одиночный бэкап, запустив контейнер примерно вот так:
docker run --rm -v data:/backup/data --env AWS_ACCESS_KEY_ID="<xxx>" --env AWS_SECRET_ACCESS_KEY="<xxx>" --env AWS_S3_BUCKET_NAME="<xxx>" --entrypoint backup offen/docker-volume-backup:v2
Поддерживается не только AWS S3, но и любое совместимое хранилище. Вот бэкап volume по SSH:
docker run --rm -v data:/backup/data --env SSH_HOST_NAME="server.local" --env SSH_PORT=2222 --env SSH_REMOTE_PATH="/mnt/backup/" --env SSH_USER="user" --env SSH_PASSWORD="password" --entrypoint backup offen/docker-volume-backup:v2
В репозитории приведены примеры и настройки для всех типов хранилищ. Перед бэкапом можно выполнить произвольные команды внутри контейнера. Например, сделать дамп базы данных, положить какую-то временную метку для будущего мониторинга или что-то ещё.
По своей сути этот проект похож на многочисленные скрипты, характерные для эпохи Unix систем, по бэкапу файлов или баз данных. Это продуманный и качественный костыль или велосипед, который избавляет вас от необходимости писать свой, а вместо этого заняться чем-то более интересным для своей инфраструктуры, для чего не существует готового решения.
⇨ Исходники
