CodeBlanks Logo Icon CodeBlanks

Dockerfile nedir?

Dockerfile'ın image tarif dosyası olduğunu öğrenirsin.

Dockerfile nedir?

Dockerfile, bir image'ın nasıl oluşturulacağını adım adım anlatan düz metin dosyasıdır. Her satır bir talimat (BÜYÜK harfle yazılır) ve argümanlarıdır. Docker talimatları yukarıdan aşağıya çalıştırır:

FROM python:3.12-slim
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]

Bu dosya bir kez yazılır, sürüm kontrolüne konur ve herkes aynı image'ı docker build ile üretir.

Talimatlara genel bakış

  • FROM: temel image
  • WORKDIR: çalışma dizini
  • COPY: dosya kopyalama
  • RUN: build sırasında komut çalıştırma
  • ENV: ortam değişkeni
  • EXPOSE: uygulamanın dinlediği port (belge niteliğinde)
  • CMD: container başlarken çalışacak varsayılan komut
# yorumlar # ile başlar
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80

Uygulama İlk Dockerfile

Bir statik site için Dockerfile yaz: temel image nginx:alpine; index.html dosyasını /usr/share/nginx/html/ dizinine kopyala; 80 portunu belgele.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80

Beklenen çıktı

[+] Building 4.2s (8/8) FINISHED
 => naming to docker.io/library/site:latest done

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dockerfile'ın ilk talimatı (yorumlar ve ARG dışında) hangisi olmalıdır?

  • FROM Doğru cevap
  • RUN
  • CMD
  • COPY

Açıklama: Her image bir temel image'ın üstüne kurulur.

2 Uygulamanın dinlediği portu belgeleyen talimatı yaz.

Soru
____ 80
Cevap
EXPOSE 80

Açıklama: EXPOSE portu açmaz; yalnızca belgeler. Yayınlamak için docker run -p gerekir.

3 Talimatları görevleriyle eşleştir.

Kavram Anlamı
FROM Temel image
COPY Dosya kopyalar
RUN Build sırasında komut
CMD Başlangıç komutu

Başlangıç bölümündeki tüm dersler