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:
-
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 -
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:v2artık yeni görüntüye işaret eder. -
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:v2Bu konteyner yeni görüntü sürümünü kullanacaktır.
-
Mevcut Konteynerler: Örneğin,
my-webserver:v1tabanlı 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.