Подтвердить что ты не робот

Контейнер для захвата докеров

При выполнении запущенного контейнера с docker commit возникает ли это создание согласованного моментального снимка файловой системы?

Я рассматриваю этот подход для резервного копирования контейнеров. Вам просто нужно docker commit <container> <container>:<date> и нажать его в локальный реестр.

Резервная копия будет инкрементной, так как фиксация просто создаст новый слой.

Также было бы сильно повреждено большое количество слоев при работе в контейнере? Есть ли способ удалить промежуточные уровни в более поздний момент времени?

Edit

По согласованным я имею в виду, что каждое приложение, предназначенное для выживания потери мощности, должно быть в состоянии восстановить эти снимки. В основном это означает, что ни один файл не должен меняться после запуска моментального снимка.

Тем временем я узнал, что докер поддерживает несколько драйверов хранения (aufs, devicemapper, btrfs). К сожалению, практически нет документации о различиях между ними и вариантах, которые они поддерживают.

4b9b3361

Ответ 1

Я предполагаю, что согласованность - это то, что вы определяете.

С точки зрения сглаживания и уменьшения стеков слишком много слоев AUFS см. https://github.com/dotcloud/docker/issues/332

docker flatten здесь.

Ответ 2

Я в подобной ситуации. Я думаю о том, чтобы не использовать специальный контейнер тома данных, вместо этого регулярно фиксируя некоторую инкрементную резервную копию. Помимо инкрементной резервной копии большое преимущество имеет подход к разработке команды. Как новичок вы можете просто docker pull образ базы данных, содержащий все данные, необходимые для запуска, отладки и разработки.

Так что сейчас я делаю паузу перед фиксацией:

docker pause happy_feynman; docker commit happy_feynman odev:`date +%s`

Насколько я могу судить, у меня сейчас нет проблем. Но это развивающаяся машина, поэтому у меня нет опыта работы на серверах с большой нагрузкой.