Image Layer とは何か?
image layer とは、1 つの build ステップによって生成される単一のファイルシステム変更の集合で、content-addressed な blob として保存されます。コンテナイメージは、runtime がオーバーレイして最終的なルートファイルシステムを生成するレイヤーの順序付きスタックです。レイヤーは digest によって参照されるため、同一のレイヤーは一度だけ保存され、イメージ間で共有されます。
なぜ重要か
レイヤーの共有こそが、新しいイメージの pull で数メガバイトしかダウンロードされないことが多い理由です。変更のないベースレイヤーはすでに cache されています。変わりやすいコンテンツが後方のレイヤーに位置するように build ステップを並べることで、cache の再利用が最大化され、push が小さくなります。runner 上では、良いレイヤー構成により、変わるのはアプリコードだけで依存関係のレイヤーは cache されたまま保たれます。
関連ガイド
What Is a Squashed Image?A squashed image is a container image whose build layers have been collapsed into one, hiding intermediate co…
What Is an OCI Artifact?An OCI artifact is any content stored in an OCI registry using the image manifest format, letting registries…
What Is a BuildKit Frontend?A BuildKit frontend translates a build definition such as a Dockerfile into the low-level build graph that Bu…