suggested strategy для управления и резервного копирования данных в докер выглядит примерно так:«Официальная» стратегия резервного копирования докеров - как насчет согласованности?
docker run --name mysqldata -v /var/lib/mysql busybox true
docker run --name mysql --volumes-from mysqldata mysql
docker run --volumes-from mysqldata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
Однако, когда я резервного копирования погонных контейнеры таким образом, я не буду получать последовательную резервную копию, я бы? Я знаю инструменты вроде mysqldump
, но что делать, если мне нужно сделать резервную копию, например, папку, в которую файлы постоянно добавляются и удаляются?
_ «сделать резервные копии в томе» _ Но эти резервные копии не будут согласованы, верно? Что я имею в виду: вы не можете делать непротиворечивые резервные копии внутри контейнера. Вы должны сделать снимок (lvm/btrfs)/var/lib/docker/volume/XYZ и выполнить резервное копирование на главной машине. – S1lentSt0rm
Объемы разделяются между бегущими контейнерами в реальном (ish) -time. Вы даже можете установить их из файловой системы хоста. используя -v/host_fs/location:/container_fs/location. Все изменения файлов в томе должны быть доступны для всех контейнеров и хоста одновременно. –
Я знаю об этом. Проблема в том, что мне нужны резервные копии _consistent_: мгновенное копирование состояния файловой системы _atomically_ в один момент времени и резервное копирование данных из этого моментального снимка только для чтения. Я не знаю, как это сделать в контейнере, так как для этого мне нужно использовать lvm или btrfs-tools. С описанным выше подходом никто не мешает файловой системе изменять во время резервного копирования. – S1lentSt0rm