Существует проект, который сильно упрощает бэкап данных при работе с Docker. Не нужно городить какие-то свои скрипты или использовать инструменты бэкапа общего пользования, которые не всегда удобно настраивать на работу с динамической инфраструктурой на основе контейнеров.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
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 систем, по бэкапу файлов или баз данных. Это продуманный и качественный костыль или велосипед, который избавляет вас от необходимости писать свой, а вместо этого заняться чем-то более интересным для своей инфраструктуры, для чего не существует готового решения.