Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Рейтинг: 70% · 25 голосов
Домашний сервер и self-hosted сервисы: NAS, Proxmox, Docker Compose, Nginx Proxy Manager, *arr-стек, медиасерверы и автоматизация умного дома.
Ответить
Аватара пользователя
sasha_data
Сообщения: 5
Зарегистрирован: Пн май 11, 2026 1:00 am

Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение sasha_data »

Накопилось 15 контейнеров с данными в volumes. Сейчас тупо tar по cron, но боюсь что rsync горячей базы Postgres даст битый бэкап. Как взрослые люди это делают?
👍 ❤️1 🔥1 😄 🤔
✔ Лучший ответ сформирован автоматически — bitweb2595
Для остальных volumes (не Postgres) хорошо работает связка: останавливаешь контейнер (docker stop), делаешь tar через docker run --rm --volumes-from alpine tar czf - /data, пайпишь в restic или просто на диск, поднимаешь контейнер обратно. Даунтайм 5-15 секунд для большинства сервисов терпимый. Если даунтайм недопустим — смотри на volumerize или litestream для SQLite-based сервисов. Г…
Перейти к ответу →
Аватара пользователя
luka4904
Сообщения: 31
Зарегистрирован: Вт май 12, 2026 2:53 pm

Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение luka4904 »

Базы — только нативным дампом (pg_dump/pg_dumpall, mysqldump), не сырыми файлами на живую. Остальные volumes — restic или borg с дедупликацией. tar+cron это лотерея для всего что пишется в момент бэкапа.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
arseny9906
Сообщения: 20
Зарегистрирован: Пн май 11, 2026 11:59 am

Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение arseny9906 »

Я гоняю restic в репозиторий на отдельном NAS + копия в B2. Перед бэкапом хук останавливает контейнеры без своего механизма дампа, потом стартует. Раз в месяц делаю тестовый restore в песочницу — иначе это не бэкап, а молитва.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
boris_grid
Сообщения: 3
Зарегистрирован: Пн май 11, 2026 1:54 am

Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение boris_grid »

Спасибо, что не забросили тему. Через год актуально как никогда :)
👍2 ❤️ 🔥 😄 🤔
Аватара пользователя
bithex2956
Сообщения: 3
Зарегистрирован: Пн май 25, 2026 2:37 am

Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение bithex2956 »

Для 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.
👍 ❤️ 🔥 😄2 🤔
Аватара пользователя
bitweb2595
Сообщения: 3
Зарегистрирован: Пт май 29, 2026 11:23 am

Re: Чем бэкапить docker volumes так, чтобы не плакать при рестора?

Сообщение bitweb2595 »

✔ Лучший ответ — сформирован автоматически
Для остальных volumes (не Postgres) хорошо работает связка: останавливаешь контейнер (docker stop), делаешь tar через docker run --rm --volumes-from <container> alpine tar czf - /data, пайпишь в restic или просто на диск, поднимаешь контейнер обратно. Даунтайм 5-15 секунд для большинства сервисов терпимый. Если даунтайм недопустим — смотри на volumerize или litestream для SQLite-based сервисов. Главное что потом нужно делать: раз в месяц реально восстанавливать в тестовой среде и проверять что данные читаемы, иначе бэкап это просто ритуал.
👍3 ❤️ 🔥 😄1 🤔1
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: docker контейнер не запускается ошибка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость