RUN komutu
- Docker & Kubernetes kursu
- Başlangıç
- Ders 21/82
- 4 dk
RUN ile build sırasında komut çalıştırmayı öğrenirsin.
RUN komutu
RUN, build sırasında bir komut çalıştırır ve sonucu yeni bir katman olarak image'a ekler. Paket kurma, derleme ve dizin oluşturma için kullanılır:
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*update ve install aynı RUN içinde olmalıdır; ayrı yazılırsa önbellekteki eski paket listesiyle kurulum yapılabilir. Sondaki rm paket listelerini silerek katmanı küçültür.
Katman sayısı ve boyut
Her RUN ayrı bir katmandır. Bir katmanda indirilip sonraki katmanda silinen dosya image boyutunu küçültmez, çünkü önceki katman değişmez. Bu yüzden kurma ve temizleme aynı RUN'da yapılır:
# kötü: 3 katman, önbellek dosyaları image'da kalır
RUN apt-get update
RUN apt-get install -y curl
RUN rm -rf /var/lib/apt/lists/*
# iyi: tek katman
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*Uygulama Tek katmanda kurulum
ubuntu:24.04 tabanlı bir Dockerfile yaz; tek bir RUN talimatında apt-get update, apt-get install -y curl git ve rm -rf /var/lib/apt/lists/* komutlarını && ile zincirle.
Başlangıç kodu
# buraya yazÖrnek çözüm
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y curl git && rm -rf /var/lib/apt/lists/*Beklenen çıktı
[+] Building 4.2s (8/8) FINISHED => naming to docker.io/library/tools:latest done
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 RUN ile CMD arasındaki fark nedir?
- RUN yalnızca Linux'ta çalışır
- CMD birden çok kez çalışır
- RUN build sırasında, CMD container başlarken çalışır Doğru cevap
- İkisi de aynıdır
Açıklama: RUN image'ı değiştirir; CMD yalnızca varsayılan başlangıç komutunu kaydeder.
2 Onay sormadan paket kur.
RUN apt-get update && apt-get install ____ curl
RUN apt-get update && apt-get install -y curl
Açıklama: Build etkileşimsizdir; -y soruları otomatik onaylar.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
RUN |
Yeni katman ekler |
&& |
Komutları tek RUN'da zincirler |
\ (satır sonu) |
Satırı sürdürür |
rm -rf /var/lib/apt/lists/* |
Katmanı küçültür |