Sobes.tech
Middle

Görüntüdeki değişiklikler yapıldıktan sonra ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

Görüntüde değişiklikler yaptıktan sonra, görüntü kendisi yeni ve ayrı bir sürüm haline gelir. Bu görüntüye dayalı yeni bir konteyner başlatıldığında, konteyner uygulanan değişiklikleri yansıtan değiştirilmiş sürümü kullanacaktır. Önceki sürümlerden başlatılan eski konteynerler, durumlarını koruyacak ve yeni görüntüyle durdurulup yeniden başlatılana kadar eski sürümle çalışmaya devam edecektir. Başka bir deyişle, görüntüdeki değişiklikler zaten çalışan konteynerleri etkilemez.

Docker örneğiyle yaşam döngüsünü inceleyelim:

  1. Dockerfile Derleme: Dockerfile üzerinde değişiklik yapıyorsunuz.

    # Güncellenmiş Dockerfile
    FROM ubuntu:latest
    RUN apt-get update && apt-get install -y nginx
    COPY index.html /var/www/html/
    EXPOSE 80
    
  2. Görüntü Oluşumu: Derleme komutunu çalıştırıyorsunuz.

    # Yeni sürüm görüntüsü oluşturma
    docker build -t my-webserver:v2 .
    

    Docker, önceki katmanlar üzerine yapılan değişikliklerle yeni bir katman oluşturur. my-webserver:v2 artık yeni görüntüye işaret eder.

  3. Yeni Konteyner Çalıştırma: Yeni bir konteyner başlatıyorsunuz.

    # Yeni sürüm görüntüsüyle konteyner başlatma
    docker run -d -p 8080:80 --name webserver_v2 my-webserver:v2
    

    Bu konteyner yeni görüntü sürümünü kullanacaktır.

  4. Mevcut Konteynerler: Örneğin, my-webserver:v1 tabanlı konteynerler, eski veriler ve yapılandırmalarla çalışmaya devam edecektir.

İşlem Sonuç Eski konteynerlere etkisi
Dockerfile değişikliği Görüntü tanımlama kodu değişir. Hayır
Görüntü oluşturma (docker build) Yeni bir görüntü oluşturulur, benzersiz ID ile. Hayır
Görüntü etiketleme (docker tag) Yeni görüntüye takma adı atanır. Hayır
Yeni konteyner başlatma Yeni konteyner yeni görüntüyü kullanır. Hayır
Eski konteyneri yeniden başlat Eski konteyner eski görüntüyle çalışır. Hayır (varsayılan)
Eski görüntüyü silme Görüntü silinir, ancak ona dayalı konteynerler korunur. Hayır (konteynerler korunur)

Çalışmakta olan konteynerleri yeni görüntü sürümüne güncellemek için, eski konteynerleri durdurup silmeniz ve ardından güncellenmiş görüntüyle yeni konteynerler başlatmanız gerekir. Üretim ortamlarında, bu güncellemeleri yönetmek için Kubernetes, Docker Swarm veya Docker Compose gibi orkestratörler kullanılır ve bu araçlar rolling update stratejileri uygular.