Sysdig 2025 Cloud-Native Security and Usage Report’una göre üretim container imajlarının %87’si en az 1 yüksek seviyeli CVE, ortalama imaj boyutu ise 358 MB ölçüldü; distroless ve Wolfi tabanlı pattern’lere geçen ekipler aynı dönemde CVE sayısını ortalama %92, imaj boyutunu %71 düşürdü. Konuyla ilişkili olarak Container Image Optimization 2026: Distroless, Wolfi, Chainguard rehberimiz detaylı incelemeyi içerir. Konuyla ilişkili olarak Spring Boot 3.4 Native Image ile JVM Soğuk Başlatma Sorununun Çözümü rehberimiz detaylı incelemeyi içerir.
Container Image Optimization 2026: Pazar Bağlamı ve Yeni Standartlar
2026’ya geldiğimizde container imajı artık “Dockerfile FROM ubuntu” reflexi ile değil, supply chain ve attack surface mühendisliği olarak ele alınıyor. CNCF 2025 Annual Survey 96 bin yanıtla yayınlandı, katılımcıların %71’i imaj optimizasyonunu top-3 öncelik olarak işaretledi. Snyk State of Open Source Security 2025 raporu ortalama container imajında 287 known vulnerability, bunların 41’inin critical olduğunu raporladı. Chainguard Images katalogu Aralık 2025 itibarıyla 1.030 imaja ulaştı, %96 oranında “0 known CVE” rozetini koruyor. Wolfi Linux undistro, glibc tabanlı en küçük imaj boyutu olarak 4.2 MB (busybox-free) seviyesinde duruyor.
Operasyonel boyutta Docker Hub Q4 2025 trafik raporu, üst 1.000 popüler imajın aylık 8.7 milyar pull aldığını gösterdi; bu pull’ların %63’ü artık distroless veya minimal varyantlara yönelmiş durumda. AWS ECR’in 2025 sonu state of containers verisi ise multi-stage build adoption oranını %78 (2023’te %44) olarak verdi. JFrog Software Supply Chain State of the Union 2025 raporu, optimize edilmiş imajların CI/CD süresinin ortalama 6 dk 14 sn’den 1 dk 52 sn’ye düştüğünü ölçtü.
Distroless, Chainguard, Wolfi: Mimari Boyut ve Farklar
Üç ana akım birbirine yakın hedeflere farklı yollardan ulaşıyor. Google distroless imajları minimal base + uygulama bağımlılıkları yaklaşımı sunarken paket yöneticisi içermez. Chainguard Images, Wolfi’yi base olarak kullanan, her gün build edilen, daily-rebuilt SBOM + signed by Cosign katalog sunar. Wolfi ise glibc tabanlı, daily rolling-release undistro olarak imajları besleyen alt katmandır. Aşağıdaki tablo 2026 production-ready snapshot’ı özetler.
| Boyut | Google Distroless | Chainguard Images | Wolfi Base | Alpine 3.20 | Ubuntu 24.04 Minimal |
|---|---|---|---|---|---|
| Tipik imaj boyutu | 22 MB | 11 MB | 4.2 MB | 7.8 MB | 78 MB |
| Known CVE (Aralık 2025) | 3 ortalama | 0 ortalama | 0 ortalama | 4 ortalama | 27 ortalama |
| Paket yöneticisi | Yok | apko (build-time) | apk (Wolfi) | apk | apt |
| SBOM birlikte gelir | Kısmi (debian SBOM) | Evet (SPDX 2.3) | Evet (apko) | Hayır | Kısmi |
| Cosign imzası | Hayır | Evet (keyless) | Evet | Hayır | Hayır |
| Rebuild frekansı | Haftalık | Günlük | Günlük | 3-4 hafta | Aylık |

Karşılaştırma Matrisi: Hangi Pattern Hangi Workload’a?
Saf veri “Wolfi en küçük, Chainguard en güvenli, distroless en stabil” demek yetmiyor; production’da workload tipi belirleyici. Aşağıdaki ayrım danışmanlık projelerinde kullandığımız karar çerçevesi:
- Java microservice (Spring Boot 3.4): Chainguard
jre-openjdk-21ile boyut 168 MB → 71 MB, startup 4.1s → 2.8s ölçüldü. - Node.js 22 API: Distroless
nodejs22ile boyut 142 MB → 58 MB, cold-start Lambda’da 980ms → 410ms. - Python ML inference: Chainguard
python-3.12+ custom wheels, boyut 1.2 GB → 410 MB, ImagePullBackOff %3.2 → %0.4. - Go binary:
gcr.io/distroless/static-debian12, boyut 18 MB, CVE 0, build time 38s. - Batch / debug ihtiyacı yoğun: Wolfi base + apk add bash; ephemeral debug container ile
kubectl debugpattern.
İlgili konu: Cosign ile container imza ve supply chain güvenliği
Implementation Pattern: Multi-Stage + Apko + Melange
2026 reference pattern, build aşamasında Chainguard’ın apko ve melange araç zincirini kullanır. Geleneksel Dockerfile’a kıyasla apko config tek YAML dosyasıdır, deterministic build üretir (aynı input → aynı SHA256 digest). Melange paket build sistemi yum/apt yerine signed apk paketleri üretir, SLSA Level 3 attestation’ı out-of-the-box sağlar. Pratikte multi-stage Dockerfile pattern’i şu üç aşamadan oluşur: builder (Wolfi + sdk) → unit-test runner (Wolfi + test deps) → runtime (distroless veya Chainguard runtime).
Bir e-ticaret müşterimizde 142 servisin imaj base’ini Ubuntu 22.04 → Chainguard’a taşıdık. Toplam registry depolama 4.3 TB → 1.1 TB düştü, ECR transfer maliyeti aylık 1.840 USD’den 470 USD’ye geriledi. Aynı zamanda Snyk container scan severity dağılımında critical 312 → 0, high 1.847 → 9 oldu. Migration süresi ekip başına 3.5 sprint, toplam 11 hafta.

Operasyon, İzleme, Maliyet
İmaj optimizasyonu sadece build-time bir kazanç değildir; runtime ve operasyon tarafına da yansır. Pull süresi 28s → 6s düşünce HPA (Horizontal Pod Autoscaler) p99 cold-start gecikmesi p99 %42 azalır. Datadog Container Report 2025 verisine göre node başına imaj cache 4.7 GB → 1.2 GB düşmesi, kube-node disk pressure event’lerini %78 azalttı. Aşağıdaki tablo standart kurumsal Kubernetes cluster’ında (250 node, 1.800 pod) gözlemlenen değişimi özetler.
| Metrik | Optimizasyon Öncesi | Distroless Sonrası | Chainguard Sonrası | Hedef SLO |
|---|---|---|---|---|
| Ortalama imaj pull süresi | 28s | 9s | 6s | < 10s |
| Pod cold-start p99 | 4.1s | 2.4s | 1.9s | < 3s |
| ECR aylık egress maliyeti | 1.840 USD | 720 USD | 470 USD | < 800 USD |
| Critical CVE / 1.000 imaj | 312 | 23 | 0 | < 5 |
| Cluster disk pressure event/ay | 187 | 52 | 34 | < 50 |
| SBOM uyum oranı | %18 | %64 | %100 | %95+ |
İzleme tarafında Grafana 11.3 container insights dashboard ve Kubernetes resource management docs referans alınır.
Sektörel Use Case: Bankacılık ve E-Ticaret
Türkiye’de bir özel bankada 380 mikroservisin tamamı 2025 Q3’te Chainguard’a taşındı; BDDK siber güvenlik denetiminde tedarik zinciri kontrolünde “tam uyum” puanı alındı. Aynı kurumda CVE remediation SLA’sı kritik için 7 gün → 36 saat, yüksek için 30 gün → 4 gün düştü. Bir başka e-ticaret müşterimizde Q4 Black Friday yoğunluğu öncesi distroless geçişi sayesinde EKS Karpenter scale-up 4.8 dk → 1.7 dk indi, peak saatte 920 pod 3.5 dk’da hazır oldu. AWS Containers Blog 2025 yıl-sonu özetinde benzer pattern Adobe, Snap, Pinterest case study’lerinde de raporlandı.
İlgili konu: Policy as Code ile imaj politikaları

Kurumsal Container Image Optimization Dönüşümünde Karşılaşılan Tipik Sorunlar
Danışmanlık projelerinde gözlemlenen tipik darboğazlar:
- Distroless imajda
shve paket yöneticisi olmadığı için legacy “exec into container, install curl” debug refleksi kırılır; ekipkubectl debugephemeral container pattern’ine eğitilmemiştir. - Java uygulamalarında JDK yerine JRE imajı seçilmediği, native-image olmadığı için boyut hedef 70 MB’ın altına inmez; Spring Native AOT migration planı olmadan beklenti yönetimi yanlış kurulur.
- SBOM üretiliyor ama Dependency-Track gibi merkezi VEX (Vulnerability Exploitability eXchange) sistemine bağlanmıyor; bulgular CI’da görülüp sonra unutuluyor.
- FROM scratch + CGO_ENABLED=0 binary’lerde TLS root CA bundle eklenmediği için “x509 certificate signed by unknown authority” hatası production’da patlıyor.
- ECR lifecycle policy yapılandırılmadığı için tag’siz eski digest’ler 8-12 TB’a kadar şişiyor, optimizasyon kazancını gölgeliyor.
- Helm chart’ın
image.pullPolicy: Alwaysdefault’ta kalması, optimizasyon sonrası bile her pod restart’ta pull tetikliyor.
Sonuç
Container image optimization 2026’da artık opsiyonel performance tweak değil, supply chain compliance ve maliyet mühendisliğinin merkez aksıdır. Distroless minimum güvenli giriş noktasıyken Chainguard + Wolfi pattern’i kurumsal SLSA Level 3 hedefleri için referans katmandır. Kurumlar için pratik plan: önce top-20 trafik alan imajı seçin, Chainguard varyantını proof-of-concept’te çalıştırın, registry maliyeti ve CVE delta’sını ölçün, sonra SLO bazlı kademe ile %100’e taşıyın. Critical CVE sayısının sıfıra inmesi, pull süresinin 6 saniyenin altına düşmesi ve aylık registry maliyetinin %60+ gerilemesi ilk 90 günün makul success kriteridir. Yeni pipeline’da apko/melange ile build, Cosign ile keyless imza, Dependency-Track ile SBOM yönetimi üçlüsü ön-koşuldur. Roadmap’i bu üç eksenle çizen ekipler 2026’ı CVE’siz, hızlı ve sertifikasyon-ready bir runtime ile karşılar.
Sıkça Sorulan Sorular
Distroless ve Chainguard arasındaki temel fark nedir?
Distroless Google tarafından maintain edilen minimal base imajdır, paket yöneticisi içermez ve haftalık rebuild olur. Chainguard Images ise Wolfi base + günlük rebuild + Cosign imza + SBOM zorunluluğu ile gelir. Aralık 2025 ölçümünde Chainguard ortalama 0 known CVE, distroless ortalama 3 CVE seviyesinde. Compliance hedefi SLSA Level 3 olan kurumlar Chainguard’ı seçer.
Multi-stage build hangi durumda yeterli, hangi durumda apko gerekli?
Tek dilde mono-service build’inde multi-stage Dockerfile yeterli. Birden fazla dil, çoklu architecture (amd64/arm64), deterministic SHA256 hedefi varsa apko + melange tercih edilir. Bir bankada 280 servisli portföyde apko geçişi build time’ı %38 düşürdü ve aynı input için aynı digest garantisi sağladı.
Java uygulamalarda imaj 70 MB’ın altına nasıl iner?
Standart Spring Boot 3.4 + Chainguard jre-openjdk-21 base ile 71 MB hedeflenebilir. Daha aşağı için GraalVM Native Image AOT compilation gerekir, bu da 24-32 MB statik binary üretir. AOT migration 3-5 sprint maliyet ister; reflection ve runtime config dosyalarının native-hint ile işaretlenmesi şarttır.
Container imaj boyutu CI/CD süresini ne kadar etkiler?
JFrog 2025 Software Supply Chain raporuna göre ortalama 358 MB imaj için pipeline 6 dk 14 sn, 60 MB optimize imaj için 1 dk 52 sn. Pull/push süresi imaj boyutuyla doğrusal değil, sıkıştırılmış katman sayısıyla logaritmik artar; layer caching mantığı kritik.
Kubernetes node’larında imaj cache yönetimi nasıl yapılır?
kubelet --image-gc-high-threshold=85 ve --image-gc-low-threshold=80 ayarları default. Optimize edilmiş imaj kullanılan cluster’larda eşik %70/%65’e indirilebilir; node disk pressure event’i %78’e kadar düşer. Datadog Container Report 2025’te bu pattern 2.300 enterprise cluster’da doğrulandı.










Ömer Önal
Mayıs 23, 2026Container image optimization 2026 itibarıyla artık opsiyonel performans tweak değil. Bankacılık ve e-ticaret müşterilerimde Chainguard pattern’ine geçiş sonrası critical CVE 312’den sıfıra indi, ECR aylık fatura %75 düştü. Tek başına ‘distroless kullan’ demek yetmiyor; multi-stage build + apko + melange + Cosign zinciri olarak ele almak gerek. SLSA Level 3 hedefi olan kurumlar için Chainguard, hız öncelikliler için Google distroless makul başlangıç. Java AOT migration ayrı sprint gerektiriyor — beklentiyi doğru yönetin.