В чем разница между идентификатором изображения Docker и его дайджестом? - PullRequest
1 голос
/ 29 мая 2019

Это было удивительно странно для меня.Я думал, что Идентификатор изображения Докера - его хэш SHA256.Тем не менее, очевидно, что результат docker image ls --digests (указан под заголовком столбца DIGEST) отличается от IMAGE ID этого изображения.

Например,

docker image ls --digests alpine
REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
alpine              latest              sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6   055936d39205        2 weeks ago         5.53MB

, а

docker image ls --no-trunc
REPOSITORY                                             TAG                 IMAGE ID                                                                  CREATED             SIZE
...
alpine                                                 latest              sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1   2 weeks ago         5.53MB

Очевидно, sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1 (ИД ИЗОБРАЖЕНИЯ) и sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6 (ДАЙГЕСТ) - это не одно и то же значение.Но почему?Какова цель иметь два разных sha256 хэша одного и того же изображения.Как они рассчитываются, соответственно?

Меня это смутило при чтении книги Docker Deep Dive , и я не смог найти четкого ответа ни в книге, ни в Интернете.

1 Ответ

1 голос
/ 31 мая 2019

Спасибо за комментарий Михалка.Краткий ответ:

  • «Дайджест» - это хэш манифеста, представленный в реестре Docker версии 2.
  • Идентификатор изображения - это хэш конфигурации JSON локального образа.
...