Container image — container ishga tushishi uchun filesystem qatlamlari, application fayllari va runtime metadata’ni saqlaydigan immutable package’dir. Image processning kernelini o‘z ichiga olmaydi; container host kernelidan foydalanadi. Registry image manifest va layerlarni digest bo‘yicha saqlaydi.
OCI tuzilishi
OCI image manifest configuration object va ordered layer digestlariga murojaat qiladi. Configuration entrypoint, command, environment, working directory va root filesystem diff IDlarini saqlaydi. Har blob content-addressed bo‘lib, checksum orqali tekshiriladi.
Image index yoki manifest list bir tag ostida amd64, arm64 kabi bir nechta platforma manifestini ko‘rsatadi. Client o‘z OS va architecture’siga mos variantni tanlaydi.
Layerlar
Dockerfile’dagi ayrim instruction yangi filesystem layer yaratadi. Layer oldingi qatlamga qo‘shilgan, o‘zgargan yoki whiteout bilan o‘chirilgan pathlarni saqlaydi. Runtime overlay filesystem ularni bitta root filesystem sifatida ko‘rsatadi.
Pastki layerdagi secretni keyingi layerda o‘chirish uni image tarixidan olib tashlamaydi. Build secret maxsus mount orqali berilib, layerga yozilmaydi. Multi-stage build compiler va source artifactlarni final runtime image’dan chiqaradi.
Image va container
Image read-only template. Container ishga tushganda uning ustiga writable layer qo‘shiladi. Container o‘chirilsa bu layer yo‘qolishi mumkin. Persistent data volume yoki tashqi storagega yoziladi.
Bir image’dan ko‘p container umumiy read-only layerlarni ulashadi. Bu disk va pull vaqtini tejaydi. Writable layerga katta data yozish storage driver va backup semantikasini murakkablashtiradi.
Tag va digest
Tag app:1.4 kabi qulay mutable nom. Registry admin bir tagni boshqa manifestga qayta yo‘naltirishi mumkin. Digest sha256:... aynan byte mazmunini immutable aniqlaydi.
Production deployment digest yoki immutable release tagni pin qiladi. latest turli node cache’ida turli image bo‘lishi mumkin. Pull policy va registry availability rolloutga ta’sir qiladi.
Build deterministikligi
Base image digest, package repository va dependency lock file build natijasini belgilaydi. apt update va unpinned package bir xil Dockerfile’dan boshqa vaqtda boshqa image yaratishi mumkin. Reproducible build timestamp va file ordering kabi nondeterministic metadata’ni ham boshqaradi.
Build cache instruction va input hashiga tayanadi. Dependency manifestni application source’dan oldin copy qilish cache reuse’ni yaxshilashi mumkin. Cache zaharlanishi yoki eski artifact qolmasligi uchun trusted scope ishlatiladi.
Xavfsizlik
Image minimal package va non-root user bilan quriladi. Shell yoki package manager yo‘qligi attack surface’ni kamaytiradi, ammo diagnostika usuli oldindan rejalashtiriladi. Read-only root filesystem va dropped Linux capabilities runtime himoyasini kuchaytiradi.
SBOM image ichidagi package va dependencylarni ro‘yxatlaydi. Vulnerability scanner SBOM yoki layerlarni CVE bazasi bilan tekshiradi. Signature publisher identity va digestni bog‘laydi; admission policy faqat tasdiqlangan image’ni qabul qiladi.
Distribution va garbage collection
Registry clientda yo‘q layerlarni parallel yuklaydi. Bir xil base layerli image’lar bloblarni qayta ishlatadi. Manifest o‘chirilganda layer boshqa image tomonidan ishlatilishi mumkin; registry garbage collection unreachable bloblarni keyin tozalaydi.
Cross-region replication deploymentni registry region nosozligidan himoya qiladi. Private registry credentiali node va CI uchun alohida, qisqa muddatli bo‘ladi. Pull audit qaysi digest qayerga tarqatilganini ko‘rsatadi.
Bog‘liq tushunchalar
OCI, Image layer, Image tag, Container registry, SBOM, Image digest, Multi-stage build