Небольшое изменение большого файла в контейнере Docker создает огромный слой
Я использую docker для создания версионной базы данных в моей локальной среде разработчика (например, чтобы иметь возможность снимать / возвращать состояние БД). Мне это нужно из-за характера моей работы. Я не могу использовать транзакции для достижения того, чего я хочу [одна из причин - некоторые из них являются DDL]
Итак, у меня есть докер-контейнер с одним большим файлом (MySQL Inno db file)
Если я немного изменю этот файл (например, строку обновления в таблице), а затем зафиксирую контейнер, будет создан новый слой, и размер этого слоя будет размером этого огромного файла, даже если изменилась только пара байтов в файле.
Я понимаю, что это происходит потому, что файл докера имеет "атомарную" структуру, если файл изменяется, его копия создается в новом слое, и этот слой позже включается в изображение.
Есть ли способ изменить это поведение и заставить Docker хранить различия на уровне файла, например, если 10 байтов файла 10 GiG были изменены, создать слой с размером меньше 10 GiG?
Мб я могу использовать какой-нибудь другой механизм хранения? [какой?] Я также не очень привязан к докеру, так что я могу даже переключиться на rkt, вопрос - вы думаете, ребята, это может помочь? (формат изображения mb отличается и может хранить различия на уровне содержимого файла)