Как я могу узнать сжатый размер каждого слоя в «истории докера»?Linux

Ответить
Anonymous
 Как я могу узнать сжатый размер каждого слоя в «истории докера»?

Сообщение Anonymous »

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

Код: Выделить всё

$ docker pull --platform linux/amd64 ubuntu:22.04
$ docker history ubuntu:22.04
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
cc934a90cd99   11 days ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
      11 days ago   /bin/sh -c #(nop) ADD file:433cf0b8353e08be3…   77.9MB
      11 days ago   /bin/sh -c #(nop)  LABEL org.opencontainers.…   0B
      11 days ago   /bin/sh -c #(nop)  LABEL org.opencontainers.…   0B
      11 days ago   /bin/sh -c #(nop)  ARG LAUNCHPAD_BUILD_ARCH     0B
      11 days ago   /bin/sh -c #(nop)  ARG RELEASE                  0B
< /code>
Но если вы посмотрите на манифест, откуда он хранится, теперь есть только один слой, а его размер составляет 29,5 МБ (я уронил некоторые из неуместных записей): < /p>
$ docker manifest inspect --verbose ubuntu:22.04
{
"Ref": "docker.io/library/ubuntu:22.04@sha256:a76d0e9d99f0e91640e35824a6259c93156f0f07b7778ba05808c750e7fa6e68",
"Descriptor": {
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:a76d0e9d99f0e91640e35824a6259c93156f0f07b7778ba05808c750e7fa6e68",
"size": 424,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
"OCIManifest": {
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"size": 2297,
"digest": "sha256:cc934a90cd99a939f3922f858ac8f055427300ee3ee4dfcd303c53e571d0aeab"
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"size": 29532365,
"digest": "sha256:30a9c22ae099393b0131322d7f50d8a9d7cd06c5e518cd27a19ac960a4d0aba3"
}
]
}
}
Проблема в том, что не всегда ясно, какой слой из истории Docker идет с каким слоем в манифесте. Для Ubuntu: 22.04 , История Docker показывает 6 слоев, но в манифесте показан 1. Я не вижу, как ссылаться на один на другой. 36.

Подробнее здесь: https://stackoverflow.com/questions/795 ... er-history
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»