Docker-在图像之间共享层

时间:2020-08-30 12:56:28

标签: docker

我下载了两张图片,大小如下:

openkbs/docker-spark-bde2020-zeppelin   latest                       9a0491580442        16 months ago       4.89GB
bde2020/spark-worker                    2.4.0-hadoop2.8              a00ffe532f34        19 months ago       3.29GB

图像openkbs/docker-spark-bde2020-zeppelin使用bde2020/spark-worker:2.4.0-hadoop2.8作为基本图像。

我对这些图像必须共享相同的图层感到印象深刻,因此总大小应为4.89GB或接近8GB?

2 个答案:

答案 0 :(得分:2)

是的,“共享”相同的图层。 Docker使用哈希(包括文件系统和命令)来识别这些层。

因此docker为您显示了图像的大小(包括基础图像),但这并不意味着它们需要相同的磁盘空间。

答案 1 :(得分:2)

docker image ls显示的大小是图像所有基础层的累积总和。

一层(由其sha256标识)仅在磁盘上存储一次。您可以将图像与一个对象进行比较,该对象具有多个引用(快捷方式)到存储在磁盘上的真实图层。因此,如果两个映像共享层,则这些共享层在磁盘空间经济性中不会计数两次,因此它们是只读的。

您可以在RootFS.Layers下检查自己组成图像的图层:

docker image inspect bde2020/spark-worker:2.4.0-hadoop2.8
...
"Layers": [
                "sha256:6b3f8ebf864ca8318043df199cfadafff30d4b7cd36fced3e8aa70a318a7ee7d",
                "sha256:402964b3d72ec5114e2f5a33d6f66ebec713b480b7e2eefe76316ea2716bb7b3",
                "sha256:9ab7eda5c826e4a810db57b848abef1aa507fc9739fcdb2b1e5ce59c32013a36",
                "sha256:9752c15164a87bb763f8c98594cd5f6fb1f7bfc1a345ea8d9d3cd7613b5af633",
                "sha256:f231cc200afe521444a90bdfbffb749158db7e2b7ee3b5db4f506e045732fa3d",
                "sha256:3df7be72984142742041d406d9a87e441c451a43b1b542fa04ac868651ef4270",
                "sha256:ae150883d6e23a3226361215b17132fa700296c9f3412c47122672ddb9bf6e8a",
                "sha256:aebfac95d831e52065bccfa8bff39274c6b8d6cf1ad6aa3dfe5e14f6ead25162",
                "sha256:44a0f5b45b77371e6ff5f2edb324866162a43c738906a27e6cee1dc83afd2a3d",
                "sha256:d469bcc2e5f63e2a595619d47126e4d34a8bd6ce7ef1f2aa159e7ae6b6913b25",
                "sha256:a88264111d7623ac62661e52fc3c9f5ea2a0abe1a76de6e8731badc911a77e54",
                "sha256:d6907de311c079af9a86ccc0a50faf3a9a093a6ddce723b42a381e86433be678",
                "sha256:702aa174263c14579400c326ed4b702087ae0762340286e0ef0350f5204ebb85",
                "sha256:a922bbe2853a6127aede4bcf6265db0020898334bed465ead0943c77db0b0a53",
                "sha256:16946f8b44a62aa237a0f982cdddf4d4c5076c108549c24bf8ff0ff7b33dc0de",
                "sha256:47f41289787d8bc23dc61b37b01f28dafa1cf1ad64b62f92d22d32ac48c3318a",
                "sha256:0e2def866256c9f461ee1f48a0b196a7550baf30160effeec83a1118cc9c3523",
                "sha256:12f3bd1236457e184de023b8554743ab86b84ae52213f52ddae1d00aded4a466",
                "sha256:134803d05af38d1097fe267fabafe3e2191de062c9f3e8814eee9fb662276490",
                "sha256:e1a5cad78cb9325a0d59b594b8956d66678357be7d381209e4f65ed84d183d1b",
                "sha256:9defc18a7278f6278c65281168d291723f5aaa8a3bb03c979f3c33d6666753a2",
                "sha256:0df1dbc5aaf2836ad0df46d53cdee4b2607287cb1c3321703f4e94a678869bf5",
                "sha256:7edc1cd579415076fab31f7ee0d4e7d656469e25dea76bd5aaf6c9705c7e4b99",
                "sha256:243c0e51121befddeef9c1bf096de03d4f280c98102130fb9a969f6e009914b7",
                "sha256:b3e2729e751313d03de1bc981363e31523982740fd670d7cb90222f00477cf8e",
                "sha256:2deb24b174cdd510d7fb4b66ee1b7d539a3f51287091fb3af14806c9d66a4e4d",
                "sha256:c9519bb4cbec339b1c4da93ebf8ec010ba7467b1274d89d6f7c34091b97a1f39",
                "sha256:1838afe4041e2e3a0874541d9c245e81176483275b9228f5be626355987eb536",
                "sha256:05727ed881eab7e8c276adcef34a573281c62edf3745e385ad7a127a3a93836e",
                "sha256:dd2c90fe36d9976cc33e1641d3870d5259207defc71121ad43334286e92c811f",
                "sha256:4be9d045f56c3389c9fed187035f9dad7e5ff3c2f7ea58927641589dfca61c99",
                "sha256:b3b95d836b240eb8d70b5f063ff185392be5b0e2dc53870ff7978e863c71cb8e",
                "sha256:305d71176c6a4e132381c95218051e21b8b5e9b8149b6a9a41b280389e8d09cd",
                "sha256:b98b3f11d64d5896beab197e5632b9ace49d4342ece1712d86353240791b1cc9"
            ]
...

docker image inspect openkbs/docker-spark-bde2020-zeppelin
...
"Layers": [
                "sha256:6b3f8ebf864ca8318043df199cfadafff30d4b7cd36fced3e8aa70a318a7ee7d",
                "sha256:402964b3d72ec5114e2f5a33d6f66ebec713b480b7e2eefe76316ea2716bb7b3",
                "sha256:9ab7eda5c826e4a810db57b848abef1aa507fc9739fcdb2b1e5ce59c32013a36",
                "sha256:9752c15164a87bb763f8c98594cd5f6fb1f7bfc1a345ea8d9d3cd7613b5af633",
                "sha256:f231cc200afe521444a90bdfbffb749158db7e2b7ee3b5db4f506e045732fa3d",
                "sha256:3df7be72984142742041d406d9a87e441c451a43b1b542fa04ac868651ef4270",
                "sha256:ae150883d6e23a3226361215b17132fa700296c9f3412c47122672ddb9bf6e8a",
                "sha256:aebfac95d831e52065bccfa8bff39274c6b8d6cf1ad6aa3dfe5e14f6ead25162",
                "sha256:44a0f5b45b77371e6ff5f2edb324866162a43c738906a27e6cee1dc83afd2a3d",
                "sha256:d469bcc2e5f63e2a595619d47126e4d34a8bd6ce7ef1f2aa159e7ae6b6913b25",
                "sha256:a88264111d7623ac62661e52fc3c9f5ea2a0abe1a76de6e8731badc911a77e54",
                "sha256:d6907de311c079af9a86ccc0a50faf3a9a093a6ddce723b42a381e86433be678",
                "sha256:702aa174263c14579400c326ed4b702087ae0762340286e0ef0350f5204ebb85",
                "sha256:a922bbe2853a6127aede4bcf6265db0020898334bed465ead0943c77db0b0a53",
                "sha256:16946f8b44a62aa237a0f982cdddf4d4c5076c108549c24bf8ff0ff7b33dc0de",
                "sha256:47f41289787d8bc23dc61b37b01f28dafa1cf1ad64b62f92d22d32ac48c3318a",
                "sha256:0e2def866256c9f461ee1f48a0b196a7550baf30160effeec83a1118cc9c3523",
                "sha256:12f3bd1236457e184de023b8554743ab86b84ae52213f52ddae1d00aded4a466",
                "sha256:134803d05af38d1097fe267fabafe3e2191de062c9f3e8814eee9fb662276490",
                "sha256:e1a5cad78cb9325a0d59b594b8956d66678357be7d381209e4f65ed84d183d1b",
                "sha256:9defc18a7278f6278c65281168d291723f5aaa8a3bb03c979f3c33d6666753a2",
                "sha256:0df1dbc5aaf2836ad0df46d53cdee4b2607287cb1c3321703f4e94a678869bf5",
                "sha256:7edc1cd579415076fab31f7ee0d4e7d656469e25dea76bd5aaf6c9705c7e4b99",
                "sha256:243c0e51121befddeef9c1bf096de03d4f280c98102130fb9a969f6e009914b7",
                "sha256:b3e2729e751313d03de1bc981363e31523982740fd670d7cb90222f00477cf8e",
                "sha256:2deb24b174cdd510d7fb4b66ee1b7d539a3f51287091fb3af14806c9d66a4e4d",
                "sha256:c9519bb4cbec339b1c4da93ebf8ec010ba7467b1274d89d6f7c34091b97a1f39",
                "sha256:1838afe4041e2e3a0874541d9c245e81176483275b9228f5be626355987eb536",
                "sha256:05727ed881eab7e8c276adcef34a573281c62edf3745e385ad7a127a3a93836e",
                "sha256:dd2c90fe36d9976cc33e1641d3870d5259207defc71121ad43334286e92c811f",
                "sha256:4be9d045f56c3389c9fed187035f9dad7e5ff3c2f7ea58927641589dfca61c99",
                "sha256:b3b95d836b240eb8d70b5f063ff185392be5b0e2dc53870ff7978e863c71cb8e",
                "sha256:305d71176c6a4e132381c95218051e21b8b5e9b8149b6a9a41b280389e8d09cd",
                "sha256:b98b3f11d64d5896beab197e5632b9ace49d4342ece1712d86353240791b1cc9",
                "sha256:89ae73266e33dfd0eb7874f1b6b5d4f1fef2e9c8a25904f0b2c0a68a3e6f6419",
                "sha256:6375bbfba5904c6aa452e160408d36c323e772ea4de4faa60d6f7ca74db522d4",
                "sha256:d64c48e05f8e3fdfd5fe10bbfffb28c7d0d827816ebe83b924f69bd932c85867",
                "sha256:64fdd93c1a37069f14dbdf87f3906aed05a41dbd2d6130c00b316c46312b1e87",
                "sha256:44927f232ad07125b2a7dd3f539fe9c38e33c78f27c48e30b840a17b8758353b"
            ]
...

如您所见,某些图层是共享的,这意味着这些图层只会计数一次,尽管图像并未考虑docker image ls

所显示的大小