0Pricing
DevOps Bootcamp · Ders

Dockerfile’ları Anlama

Bir imajın nasıl oluşturulacağını tanımlamak için Dockerfile’larda kullanılan söz dizimini ve yaygın yönergeleri öğrenin.

Dockerfile’ları Anlama, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Dockerfile Nedir?

Bir pasta pişirmek için tarifiniz olduğunu düşünün. Bir Dockerfile buna çok benzer! Docker'ın bir Docker imajını otomatik olarak oluşturmak için ihtiyaç duyduğu tüm talimatları içeren düz metin dosyasıdır.

Malzemeleri karıştırmak yerine Docker'a hangi temel işletim sistemini kullanacağını, hangi yazılımları kuracağını ve uygulamanızı imajın içinde nasıl yapılandıracağını söylersiniz.

Dockerfile’ları Anlama — resim 1

Avantajlar: Oluşturma Otomasyonu

Dockerfile'lar geliştirme iş akışınıza birçok avantaj getirir:

  • Otomasyon: Artık elle yapılan adımlara gerek yok! Docker, imajları her seferinde tutarlı biçimde oluşturur.
  • Sürüm Denetimi: Dockerfile'lar koddur; bu nedenle değişiklikleri Git kullanarak izleyebilirsiniz.
  • Yeniden Üretilebilirlik: Dockerfile'a sahip olan herkes tamamen aynı imajı oluşturabilir.
  • Şeffaflık: Bir imajın içinde tam olarak neler olduğunu görebilirsiniz.

Temel Dockerfile Yapısı

Bir Dockerfile, yukarıdan aşağıya sırayla yürütülen talimatlar listesidir. Her talimat imajda yeni bir katman oluşturur.

Temel söz dizimi basittir:

INSTRUCTION arguments

Yorumlar, birçok programlama dilinde olduğu gibi # ile başlar. Docker talimatları büyük-küçük harfe duyarlı değildir; ancak geleneksel olarak büyük harfle yazılır.

FROM ile Temel İmaj Seçme

Her Dockerfile FROM talimatıyla başlamalıdır. Bu talimat, yeni imajınızın üzerine kurulacağı temel imajı belirtir. Bu temel imaj genellikle bir işletim sistemi (Alpine Linux gibi) ve bazen önceden kurulmuş yazılımlar içerir.

Bunu başlangıç noktanızı seçmek gibi düşünün: boş bir tuval veya üzerinde bazı temel renkler bulunan bir tuval.

FROM alpine:latest

RUN ile Komutları Yürütme

RUN talimatı, imaj oluşturma işlemi sırasında komutları yürütmek için kullanılır. Paketleri burada kurar, dizinler oluşturur veya kodu derlersiniz.

Her RUN komutu yeni bir katman oluşturur; bu nedenle komutları && ile birleştirmek imaj boyutunu küçültmeye yardımcı olabilir.

RUN apk update && apk add git

CMD ile Varsayılan Komut

CMD talimatı, çalıştırılan bir container için varsayılan komutları veya bağımsız değişkenleri sağlar. RUN'dan farklı olarak CMD komutları oluşturma sırasında değil, container başladığında yürütülür.

Bir container'ı çalıştırırken bir komut belirtirseniz (örneğin docker run my-image ls), bu komut CMD talimatının üzerine yazılır.

CMD ["echo", "Hello from container!"]

COPY ile Dosya Ekleme

COPY talimatı, ana makinenizden (imajı oluşturduğunuz makineden) yeni dosyaları veya dizinleri belirtilen bir yoldaki Docker imajının dosya sistemine kopyalar.

Daha şeffaf olduğu ve yalnızca yerel dosyaları kopyaladığı için genellikle ADD yerine tercih edilir.

COPY ./app /usr/src/app

Çalışma Dizini ve Ortam Değişkenleri

WORKDIR, kendisinden sonra gelen RUN, CMD, ENTRYPOINT, COPY ve ADD talimatları için çalışma dizinini belirler. Dockerfile'ınızı daha temiz hale getirir.

ENV, ortam değişkenlerini belirler. Bu değişkenler Dockerfile'daki sonraki talimatlar ve çalışan container için kullanılabilir.

WORKDIR /app
ENV PORT=8080

EXPOSE ile Bağlantı Noktaları Hakkında Bilgi Verme

EXPOSE talimatı, Docker'a container'ın çalışma zamanında belirtilen ağ bağlantı noktalarını dinlediğini bildirir. Bağlantı noktasını gerçekten yayımlamaz.

Bunu belgeleme olarak düşünün. Bağlantı noktasına container dışından gerçekten erişilebilmesini sağlamak için docker run ile -p seçeneğini kullanmanız gerekir.

EXPOSE 80
EXPOSE 443

İlk Basit Dockerfile'ınız

Her şeyi bir araya getirelim! Aşağıda Alpine Linux imajı oluşturan, bir paket kuran ve varsayılan bir komut tanımlayan temel bir Dockerfile yer alıyor.

Bunu oluşturmak için dosyayı boş bir dizine Dockerfile adıyla kaydedin, ardından terminalinizde docker build -t my-simple-app . komutunu çalıştırın.

FROM alpine:latest

LABEL maintainer="CoddyKit"

RUN apk update && apk add --no-cache bash

WORKDIR /app

CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]

Dockerfile Talimatları Testi

Bilginizi test edin! Bu talimatlardan hangileri imaj oluşturma işlemi sırasında yürütülerek imajın içeriğini veya yapısını doğrudan değiştirir?

Özet: Dockerfile Temel Bilgileri

Docker imajlarını anlamada büyük bir adım attınız! Dockerfile'ların imaj oluşturma talimatlarını içeren metin dosyaları olduğunu ve otomasyon ile yeniden üretilebilirlik gibi önemli avantajlar sunduğunu öğrendik.

Ele alınan temel talimatlar:

  • FROM: Temel imajı tanımlar.
  • RUN: Oluşturma sırasında komutları yürütür.
  • CMD: Çalışan bir container için varsayılan komutu belirler.
  • COPY: Ana makineden imaja dosya ekler.
  • WORKDIR, ENV, EXPOSE: İmajı ve container ortamını yapılandırır.

Sıkça Sorulan Sorular

“Dockerfile’ları Anlama” dersi ücretsiz mi?

Evet — “Dockerfile’ları Anlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Dockerfile’ları Anlama” dersinde ne öğreneceğim?

Bir imajın nasıl oluşturulacağını tanımlamak için Dockerfile’larda kullanılan söz dizimini ve yaygın yönergeleri öğrenin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Dockerfile’ları Anlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dockerfile’ları Anlama
  2. Özel Docker İmajları Oluşturma
  3. İmaj Katmanları ve İyileştirme
  4. Çok Aşamalı Derlemeler ve Daha Küçük İmajlar
← DevOps Bootcamp Sayfasına Dön