FROM komutu
- Docker & Kubernetes kursu
- Başlangıç
- Ders 20/82
- 4 dk
FROM ile temel image belirtmeyi öğrenirsin.
FROM komutu
FROM, image'ın üzerine kurulacağı temel image'ı seçer. Seçim image boyutunu ve güvenliğini doğrudan etkiler:
python:3.12: Debian tabanlı, tam (~1 GB)python:3.12-slim: gereksiz paketleri çıkarılmış (~150 MB)python:3.12-alpine: Alpine Linux tabanlı (~50 MB); musl libc yüzünden bazı paketlerde sorun çıkarabilir
FROM python:3.12-slimSürümü sabitlemek
FROM node yazmak, her build'de farklı bir Node sürümü getirebilir. Sürümü sabitle; daha da kesin olmak için image özetini (digest) kullanabilirsin:
FROM node:20-alpine
FROM node:20.18.0-alpine3.20
FROM node@sha256:3f2a… # değişmez: tam olarak aynı imageFROM scratch ise tamamen boş bir image'dır; statik derlenmiş Go programları için kullanılır.
Uygulama Temel image seçimi
Bir Node.js uygulaması için Dockerfile'ın ilk iki satırını yaz: temel image node:20-alpine, çalışma dizini /app.
Başlangıç kodu
# buraya yazÖrnek çözüm
FROM node:20-alpine
WORKDIR /appBeklenen çıktı
[+] Building 4.2s (8/8) FINISHED => naming to docker.io/library/api:latest done
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Küçük image ile genellikle hangi fayda sağlanır?
- Daha hızlı CPU
- Daha çok bellek
- Otomatik yedekleme
- Daha hızlı indirme ve daha az güvenlik açığı yüzeyi Doğru cevap
Açıklama: Image'da bulunmayan paketin açığı da yoktur.
2 Hafif bir Python temeli seç.
FROM python:3.12-____
FROM python:3.12-slim
Açıklama: -slim etiketi gereksiz paketleri çıkarılmış Debian sürümüdür.
3 Temel image'ları eşleştir.
| Kavram | Anlamı |
|---|---|
python:3.12 |
Tam Debian, ~1 GB |
python:3.12-slim |
İnceltilmiş, ~150 MB |
python:3.12-alpine |
Alpine, ~50 MB |
scratch |
Boş image |