#docker #dockerfile #artifactory
#docker #dockerfile #артефактор
Вопрос:
Я создал изображение docker с пользовательским тегом, используя Dockerfile. Впервые, когда я поместил его в репозиторий docker (в Jfrog artifactory), используя команду docker push, оно сгенерировало значение дайджеста SHA256. Теперь я снова поместил одно и то же изображение с тем же тегом без каких-либо изменений в содержимом изображения в тот же репозиторий docker. Но теперь оно сгенерировало новое значение дайджеста SHA256.
Кто-нибудь может объяснить мне, почему это происходит? На данный момент я поражен, поскольку мой проект вряд ли зависит от значения SHA256-дайджеста изображения docker.
Комментарии:
1. @user1529891 — Большое спасибо. Это ответило на мой вопрос
2. У меня последняя версия aws (2021), если я помещаю один и тот же исходный код с новым тегом, дайджест остается тем же. Я бы хотел новый дайджест, как и ваш вопрос
Ответ №1:
Поскольку мой комментарий ответил на ваш вопрос, оригинальная ссылка относится к сообщению здесь:https://windsock.io/explaining-docker-image-ids /
Слои идентифицируются дайджестом в этой форме: algorithm:hex
который выглядит как sha256:abcd....
.
hex
Вычисляется путем применения алгоритма ( sha256
) к содержимому слоев. Если содержимое меняется, то меняется и дайджест.
Комментарии:
1. Можете ли вы предоставить дополнительную информацию, связанную с тем, как создается manifest.json и из какой информации он состоит? Из-за изменения в manifest.json общее значение SHA изображения меняется, даже если содержимое слоев не меняется
2. Этот ответ очень запутанный. Содержимое не меняется, не так ли? Я имею в виду, что мы просто что-то помечаем, мы не меняем то, что помечается. Итак, если теги изображения каким-то образом не являются частью этого изображения, то на самом деле это вообще не объяснение.
3. @Kris Изменение текста в файлах означает, что содержимое не изменилось. Когда вы создаете изображение, существует множество слоев (например, обновления SO, изменения родительского изображения и т.д.), Поэтому, по крайней мере, у вас есть все слои, кэшированные содержимое будет часто меняться, даже если ваш код тот же.