Özel Docker İmajları Oluşturma
Basit bir uygulama için ilk özel Docker imajınızı oluşturun; imajı doğru şekilde etiketleyip sürümleyin.
Özel Docker İmajları Oluşturma, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals dersidir. Bu, 4 dersinin 2. 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, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
İlk Docker İmajınızı Oluşturun
Özel imajlar neden oluşturulur? Belirli uygulamanızı, bağımlılıklarını ve yapılandırmasını tek bir taşınabilir birimde paketlemenizi sağlarlar. Bu, tutarlılık ve kolay dağıtım için çok önemlidir.
Bu imajın nasıl oluşturulacağını Dockerfile adlı bir dosya kullanarak tanımlarsınız.

Basit Web Uygulamamız
Son derece basit bir Python Flask web uygulamasını container'laştıracağız. Uygulama, web adresini ziyaret ettiğinizde yalnızca "Hello from Docker!" döndürür.
Bir dizinde şu dosyaların bulunduğunu düşünün:
app.py: Python uygulama kodurequirements.txt: Python bağımlılıklarını listelerDockerfile: İmaj oluşturma talimatları
Flask Uygulama Kodu
Bu, temel Python Flask uygulamamızdır. 5000 numaralı bağlantı noktasını dinler ve "Hello from Docker!" yanıtını verir.
Çalışırken görmek için bunu yerel olarak (Flask'ı yükledikten sonra) çalıştırabilirsiniz!
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello from Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')Bağımlılıkları Belirtme
Uygulamamızın Flask kitaplığına ihtiyacı vardır. Bunu requirements.txt dosyasında listeleriz. Bu dosya, Docker'a (ve Python'ın paket yöneticisi pip'e) nelerin yükleneceğini bildirir.
Bu, imajımızın uygulamanın çalışması için gereken tüm kitaplıklara sahip olmasını sağlar.
Flask==2.3.2Dockerfile Dosyamızın Anatomisi
Dockerfile, bir imaj oluşturmak için gereken talimatları içeren bir metin dosyasıdır. Her talimat bir katman oluşturur. Kullanacağımız talimatlar şunlardır:
FROM: Temel imajı belirtir (ör. Python).WORKDIR: Kapsayıcı içindeki çalışma dizinini ayarlar.COPY: Dosyaları yerel makinenizden imaja kopyalar.RUN: Komutları çalıştırır (ör. bağımlılıkları yükler).EXPOSE: Docker'a kapsayıcının dinlediği bağlantı noktalarını bildirir.CMD: Kapsayıcı başlatıldığında çalıştırılacak varsayılan komutu tanımlar.
Dockerfile Oluşturma
Flask uygulamamız için eksiksiz Dockerfile dosyası aşağıdadır. Bu dosyayı app.py ve requirements.txt ile aynı dizine yerleştirin.
# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
CMD ["python", "app.py"]`docker build` Komutu
Şimdi imajımızı oluşturalım! Terminalinizi Dockerfile dosyanızın ve uygulama dosyalarınızın bulunduğu dizinde açın.
-t bayrağı, imajımıza bir ad (my-flask-app) ve sürüm (1.0) etiketi ekler. . ise Docker'a mevcut dizini derleme bağlamı olarak kullanmasını söyler.
docker build -t my-flask-app:1.0 .
Yeni İmajınızı Doğrulama
Derleme tamamlandıktan sonra tüm yerel Docker imajlarını listeleyerek yeni imajınızın var olduğunu doğrulayabilirsiniz.
Çıktıda 1.0 etiketiyle birlikte my-flask-app adını arayın.
docker images
Uygulama Kapsayıcınızı Başlatma
Uygulamanızı çalışırken görmenin zamanı geldi! İmajınızdan bir kapsayıcı oluşturup başlatmak için docker run kullanın.
-p 5000:5000, ana makinenizdeki 5000 numaralı bağlantı noktasını kapsayıcının içindeki 5000 numaralı bağlantı noktasına eşler. -d ise kapsayıcıyı ayrık modda (arka planda) çalıştırır.
docker run -d -p 5000:5000 my-flask-app:1.0
"Hello from Docker!" iletisini görmek için tarayıcınızda http://localhost:5000 adresini ziyaret edin.
İmaj Etiketleme İçin En İyi Uygulamalar
Etiketler, imajlarınızın farklı sürümlerini yönetmek için çok önemlidir. Yaygın bir uygulama, anlamsal sürümleme (ör. 1.0.0, 2.1.5) kullanmanın yanı sıra bir latest etiketi de kullanmaktır.
docker tag kullanarak bir imaja birden fazla etiket ekleyebilirsiniz:
docker tag my-flask-app:1.0 my-flask-app:latest
Bu, aynı imaja farklı adlarla başvurmanızı sağlayarak dağıtımlarda esneklik sunar.
Hızlı Kontrol
Aşağıdaki Dockerfile dosyasını ve derleme komutunu inceleyin:
# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]
docker build -t my-app:v1 .docker build -t my-app:v1 . komutuyla ilgili aşağıdaki ifadelerden hangisi DOĞRUDUR?
Özet: Özel İmajlar
Harika iş çıkardınız! Şunları öğrendiniz:
- Basit bir uygulamayı kapsayıcılaştırmaya hazırlamayı.
- Anahtar talimatları (
FROM,WORKDIR,COPY,RUN,EXPOSE,CMD) kullanarak temel birDockerfileyazmayı. docker build -tkullanarak özel bir Docker imajı oluşturmayı.- İmajınızı
docker imagesile doğrulamayı. docker run -pkullanarak özel imajınızdan bir kapsayıcı çalıştırmayı.- İmaj etiketleme ve sürüm oluşturmanın önemini anlamayı.
Sırada Docker imajlarının katmanlarla nasıl yapılandırıldığını ve boyutlarını ve derleme sürelerini optimize etme tekniklerini daha ayrıntılı inceleyeceğiz!
Sıkça Sorulan Sorular
“Özel Docker İmajları Oluşturma” dersi ücretsiz mi?
Evet — “Özel Docker İmajları Oluşturma” 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 Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
“Özel Docker İmajları Oluşturma” dersinde ne öğreneceğim?
Basit bir uygulama için ilk özel Docker imajınızı oluşturun; imajı doğru şekilde etiketleyip sürümleyin. Docker & DevOps Fundamentals 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.
Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, 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 2. dersidir.
“Özel Docker İmajları Oluşturma” 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 Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Docker & DevOps Fundamentals 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
- Dockerfile’ları Anlama
- Özel Docker İmajları Oluşturma
- İmaj Katmanları ve İyileştirme
- Çok Aşamalı Derlemeler ve Daha Küçük İmajlar