Dünyanın en detaylı ücretsiz FDE + DevOps kütüphanesi: 140 üzeri ders, 70 üzeri lab ve 80 uzun yazı, İngilizce ve Türkçe. Öğrenmeye başla →

DevOps Foundations · Modül 5: Container temelleri

Imajlar, Katmanlar ve Derlemeler

Her konteyner imajı üstünde derleme önbelleği olan dosya sistemi farkları yığınıdır. Bu ders katmanları okunur kılar; derlemeler hızlı, imajlar küçük kalır.

10 dk okuma

Kazanımlar

  • Dockerfile talimatlarının önbellekli katmanlara nasıl dönüştüğünü açıklamak
  • Talimatları, derlemeler işi yinelemek yerine önbelleği kullanacak sıralamak
  • İmaj geçmişini okuyup her katmanın ne eklediğini adlandırmak
  • Çalışma ortamını küçük tutmak için çok aşamalı derleme kullanmak

Neden önemli

Ekip her committe imajı yeniden derler; her derleme on bir dakika sürer, çünkü bağımlılık kurulumu uygulama kopyasının üstündedir ve her kod değişikliğinde yeniden çalışır. İki satırı taşımak derlemeyi kırk saniyeye indirir. Katman sırası tüm konteyner yığınının en ucuz performans işidir; Dockerfile içinde bir kez karar verilir, sonra her derlemede ödenir.

Kavramlar

Her Dockerfile talimatı bir katman üretir: önceki dosya sistemi durumuna fark. Derleme önbelleği, talimatı ve girdileri değişmemiş katmanı yeniden kullanır; değişen satır kendi katmanını ve altındaki her katmanı geçersiz kılar. Sıralama değişim sıklığını izler: kararlı temeller (taban imaj, sistem paketleri, dil bağımlılıkları) üstte, değişen uygulama kodu altta. Önce COPY package.json ve kurulum, sonra COPY kaynak standart örnektir: bağımlılık katmanları yalnızca bağımlılıklar değişince yeniden derlenir.

İmaj geçmişi bunu görünür kılar: her katman boyutunu ve komutunu gösterir; şişkin imajın faili bellidir, genelde paket önbelleği, çalışmada kalmış derleme zinciri veya git geçmişi ve denemeler dahil tüm bağlamın COPY ile alınması. .dockerignore derlemenin ihtiyaç duymadığı bağlamı dışlar; çok aşamalı derlemeler derleme ortamını çalışmadan ayırır, derlenmiş yapıyı ince son imaja COPY --from ile taşır. Derleme aşaması ağır olabilir; taşınan aşama yalnızca çalışanı taşır.

Tekrarlanabilirlik aynı girdilerin aynı imajı üretmesidir. Taban imaj etiketlerini latest yerine özet veya sabit sürüme sabitle, bağımlılık sürümlerini kilit dosyalarında sabitle, derleme içine zaman damgası ve ağ çekmesi koyma. Her hafta farklı derlenen Dockerfile piyango biletidir; sabitleme onu kayda çevirir.

Uygulamalı örnek

Node servisi yavaş derleniyor, 1.1 GB taşıyor. Yavaş Dockerfile yukarıdaki EN metindeki gibidir: COPY . . kurulumdan önce gelir, bağımlılık katmanını her düzenlemede geçersiz kılar; son imaj devDependencies, npm önbelleği ve kaynak haritaları taşır. Onarılmış sürüm bağımlılık katmanlarını kod düzenlemelerinde önbellekler, çalışma aşaması zincir ve geliştirme bağımlılıklarını düşürür. Öncesi ve sonrası imaj geçmişiyle doğrula: daha az ağır katman, önbellek dizini yok. L13 labı bunu küçük serviste root-dışı kullanıcıyla canlandırır.

Yaygın yanlış hamle

FROM latest ve sabitlenmemiş kurulumlar. Altı ay sonra yeniden derleme yeni ana tabanı çeker, bağımlılık farklı çözümlenir, eskiden çalışan imaj Dockerfile'dan yeniden üretilemeyen biçimlerde düşer. latest kararlı adlı hareketli hedeftir. Derlemenin iki kez aynı olması için gereken her şeyi sabitle.

Lab ve sonraki adım

L13 labı küçük servisi bu katmanlamayla tekrarlanabilir root-dışı imaja çevirir, testli. Sırada 2. ders: konteynerin hangi kullanıcıyla çalıştığı ve etrafındaki çalışma ortamı.

Mini kontrol

4 soruluk isteğe bağlı öz kontrol. Yanıtlar cihazından çıkmaz, saklanmaz ve hiçbir değerlendirmeye sayılmaz.

Ders geri bildirimi

Henüz yayında geri bildirim yok.

Geri bildirim yazmak için giriş yap ve dersi tamamla.

Kaynaklar

Alıştırma

Sahip olduğun Dockerfile'ı al (veya yukarıdaki yavaşı). İmaj geçmişi boyutlarını göster, önbellek için yeniden sırala, .dockerignore ekle; değişikliksiz yeniden derleme sürelerini ve son imaj boyutunu önce/sonra raporla.

Geçme kriterleri

Geçmiş ağır katman adıyla gösterilmiş; sıralama kararlı adımları öne almış; değişikliksiz derleme süresi ve son boyut iyileşmeyle raporlanmış.

İlerlemeni kaydetmek için giriş yapÜcretsiz hesap: yalnızca ders ilerlemen ve quiz sonuçların saklanır.