Чем бэкапить docker volumes так, чтобы не плакать при рестора?
Рейтинг: 70% · 25 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
- sasha_data
- Сообщения: 5
- Зарегистрирован: Пн май 11, 2026 1:00 am
✔ Лучший ответ сформирован автоматически — bitweb2595
Для остальных volumes (не Postgres) хорошо работает связка: останавливаешь контейнер (docker stop), делаешь tar через docker run --rm --volumes-from alpine tar czf - /data, пайпишь в restic или просто на диск, поднимаешь контейнер обратно. Даунтайм 5-15 секунд для большинства сервисов терпимый. Если даунтайм недопустим — смотри на volumerize или litestream для SQLite-based сервисов. Г…
- arseny9906
- Сообщения: 20
- Зарегистрирован: Пн май 11, 2026 11:59 am
Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?
Я гоняю restic в репозиторий на отдельном NAS + копия в B2. Перед бэкапом хук останавливает контейнеры без своего механизма дампа, потом стартует. Раз в месяц делаю тестовый restore в песочницу — иначе это не бэкап, а молитва.
- boris_grid
- Сообщения: 3
- Зарегистрирован: Пн май 11, 2026 1:54 am
- bithex2956
- Сообщения: 3
- Зарегистрирован: Пн май 25, 2026 2:37 am
Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?
Для Postgres внутри контейнера правильный путь — pg_dump/pg_basebackup, а не rsync volume напрямую. Я делаю так: отдельный sidecar-контейнер (или docker exec в cron-скрипте) запускает pg_dump -Fc, пишет в /backup с именем вида db_2026-06-08.dump, потом restic backup /backup --tag postgres отправляет в B2 или любой S3-совместимый бэкенд. restic даёт дедупликацию, шифрование и retention-политику одной командой. Восстановление проверял живьём — pg_restore из .dump поднимается чисто, в отличие от rsync горячих файлов WAL.
- bitweb2595
- Сообщения: 3
- Зарегистрирован: Пт май 29, 2026 11:23 am
Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?
✔ Лучший ответ — сформирован автоматически
Для остальных volumes (не Postgres) хорошо работает связка: останавливаешь контейнер (docker stop), делаешь tar через docker run --rm --volumes-from <container> alpine tar czf - /data, пайпишь в restic или просто на диск, поднимаешь контейнер обратно. Даунтайм 5-15 секунд для большинства сервисов терпимый. Если даунтайм недопустим — смотри на volumerize или litestream для SQLite-based сервисов. Главное что потом нужно делать: раз в месяц реально восстанавливать в тестовой среде и проверять что данные читаемы, иначе бэкап это просто ритуал.
Поделиться темой:
✈ Telegram
VK
Похожие запросы:
docker контейнер не запускается ошибка
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость