containers/podman

[docs] Distinguish between lazy pulling and partial pulling

已關閉

#24,947 建立於 2025年1月6日

 (10 則留言) (1 個反應) (0 位負責人)Go (3,107 個分叉)batch import
ContribfestGood First Issuedocumentationvolunteers-wanted

倉庫指標

星標
 (31,686 顆星)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

Currently "partial pulling" and "lazy pulling" are used interchangeably, e.g. here:

https://github.com/containers/podman/blob/e79686ee12eb64bd296625b6a55381554d4080cc/docs/tutorials/performance.md#lazy-pulling-of-container-images

Lazy pulling of container images

Podman supports lazy pulling for the following container image formats:

  • zstd:chunked
  • eStargz

zstd:chunked has better performance than eStargz.

See the article Pull container images faster with partial pulls by Giuseppe Scrivano and Dan Walsh.

However, the wider container ecosystem seems to use these 2 terms for 2 different things. Partial pulling means the tool doesn't need to download chunks it already downloaded before (chunk cache is reused between pulls). Lazy pulling means the container can be started before it finishes downloading, and its chunks will be downloaded on-demand.

As far as I know, podman supports "partial pulling", but not "lazy pulling". I.e. the image download process does not need to download all the data from scratch, but it still needs to finish before a container can be started. Am I right?

Meanwhile containerd (nerdctl) supports "lazy pulling", but doesn't mention anything about "partial pulling" (as in: cache reuse between downloads). So it can start a container having downloaded only the files the image needs (nice), but if two different images share the same files, it will (probably) still end up downloading these files twice.

If my reasoning is correct, can we document this better?


By the way: calling cache reuse "partial pulling" is a bit unfortunate here, since by the sound of it, "lazy pulling" should be partial (it only downloads parts of the images that are used), but with current meaning of these 2 phrases, it's not. Maybe we need another name for "partial pulling", like "pulling with chunk-level cache"?

貢獻者指南