İçeriğe atla
0 XP 0
0/5

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +50 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

8 dk · 50 XP · 5 etkinlik

İmaj katmanları ve saldırı yüzeyi

Konteyner yeni bir sanal makine türü değildir. Ana makinenin çekirdeğini paylaşan, ad alanları ve kontrol gruplarıyla yalıtılmış bir süreçtir. Bu fark hem hızını hem risk profilini belirler.

İmaj ise o sürecin dosya sistemidir. Katman katman kurulur: taban imajın üstüne paket kurulumu gelir, onun üstüne uygulama dosyaları biner. Her katman bir öncekinin farkını tutar.

Katmanların değişmez olması önemli bir sonuç doğurur. Bir dosyayı sonraki katmanda silersen, üst katmana bir silme işareti yazılır ama alttaki içerik yerinde kalır. Çıkarılıp okunabilir.

FROM python:3.12-slim        # taban katmanları
RUN apt-get update && apt-get install -y curl   # yeni katman
COPY . /app                  # yeni katman
RUN rm /app/ayarlar.gizli    # silme işareti, ama dosya alt katmanda durur
CMD ["python", "/app/main.py"]
Dördüncü satır dosyayı görünmez yapar, imajdan çıkarmaz.

Dockerfile'daki her satır katman açmaz. Yalnız dosya sistemini değiştiren yönergeler yeni katman ekler; FROM taban katmanlarını getirir, RUN ve COPY üstüne yeni katman kurar. CMD ise üstveridir, hangi komutun çalışacağını söyler ama katman oluşturmaz. Silme yönergesi de bu mantığa uyar: dosyayı görünmez kılan bir işaret yazar, ama işareti taşıyan katmanın altındaki içerik yerinde durur.