0Pricing
DevOps Bootcamp · Ders

Ö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 DevOps Bootcamp 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, 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.

İ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.

Özel Docker İmajları Oluşturma — resim 1

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 kodu
  • requirements.txt: Python bağımlılıklarını listeler
  • Dockerfile: İ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.2

Dockerfile 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 bir Dockerfile yazmayı.
  • docker build -t kullanarak özel bir Docker imajı oluşturmayı.
  • İmajınızı docker images ile doğrulamayı.
  • docker run -p kullanarak ö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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp 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. 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 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 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