Повторное использование слоя Docker - PullRequest
0 голосов
/ 26 февраля 2019

Artifactory на данный момент хранит несколько дублированных слоев изображения докера.Если изображение A и изображение B зависят от слоя SHA__12345, то артефакт будет хранить обе копии слоя.Что не проблема, если размер слоя SHA__12345 не превышает гигабайт.В этом случае вы действительно можете быстро исчерпать пространство.

Есть ли в артефакте способ дедупликации перекрывающихся слоев по причинам хранения?

Спасибо!

1 Ответ

0 голосов
/ 26 февраля 2019

Artifactory использует хранилище на основе контрольной суммы :

Файл, который загружается в Artifactory, сначала рассчитывает контрольную сумму SHA1, а затем переименовывается в контрольную сумму.Затем он размещается в настроенном хранилище файлов в структуре каталогов, состоящей из первых двух символов контрольной суммы.Например, файл с контрольной суммой «ac3f5e56 ...» будет храниться в каталоге «ac»;файл с контрольной суммой «dfe12a4b ...» будет храниться в каталоге «df» и т. д.

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

Одним из следствий этого является то, что артефакты в целом дедуплицируются.Любые два артефакта с одинаковой контрольной суммой будут указывать на один и тот же файл в хранилище, даже если они находятся в разных репозиториях.Это относится к слоям докеров, а также ко всем другим артефактам.Так что с этим проблем быть не должно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...