🔗 Ekosistem

Ekosistem: Tek bir Docker container'ı, bir kamyondaki tek bir konteyner gibidir — kullanışlıdır ama gerçek güç limanda ortaya çıkar: otomatik yükleme/boşaltma yapan vinçler (Kube

Tek bir Docker container'ı, bir kamyondaki tek bir konteyner gibidir — kullanışlıdır ama gerçek güç limanda ortaya çıkar: otomatik yükleme/boşaltma yapan vinçler (Kubernetes), hangi geminin nereye gideceğine karar veren bir dispeçer (Jenkins/CI), ve oradan geçen her container'ı kayıt altına alan bir defter (Docker Hub gibi bir registry). Peki bir container zaten uygulamanı çalıştırıyorsa, neden onu üç sistemle daha sarmalayıp daha büyük bir sunucuda 'docker run' çalıştırmıyoruz? Çünkü tek başına bir container'ın geçmiş versiyonlara dair hafızası, otomatik restart politikası ve deploy sırasında dokuz aynı kardeşiyle koordine olma yeteneği yoktur — tıpkı tek bir Java nesnesi ile onun yaşam döngüsünü, wiring'ini ve recovery'sini senin yerine yöneten framework (örneğin Spring'in ApplicationContext'i) arasındaki fark gibi. Gerçek bir pipeline'da registry katmanını atlamak, bir test mühendisinin bir bug'ı tekrar üretemediği klasik incident'a yol açar: 'latest' image tag'i, dünkü build'den bugün sessizce farklı bir build'e işaret ediyordur.

Docker Büyük Resme Nasıl Uyuyor

Tek başına Docker, tek bir makinede tek bir container build edip çalıştırır. QA/DevOps pipeline'ındaki gerçek değeri dört sisteme bağlanmasından gelir: her push'ta image build edip test eden bir CI/CD aracı, bu image'ları saklayıp versiyonlayan bir registry, container'ları makineler arasında güvenilir şekilde çalıştıran bir orkestratör, ve containerized uygulamanın çalışma zamanında konuştuğu bir mesaj broker'ı veya veritabanı.

Docker Ekosistemi — Kim Kiminle Konuşuyor

Jenkins / GitHub Actions

Docker Hub / ECR / GCR

Prometheus / Grafana

Her araç kendi işini iyi yapar — Docker paketler, CI build eder, registry saklar, Kubernetes orkestre eder, monitoring izler.

Pratik: CI için izlenebilir Docker artifact üret

Referanstaki üç satırda da ___ yerine aynı $COMMIT_SHA değişkenini yaz; build edilen artifact ile test edilen artifact aynı olmalı.

Docker Artifact Pipeline Akışı

Jenkins/GitHub Actions yeni commit için pipeline tetikler.

Dockerfile aynı kaynak koddan immutable image üretir.

Aynı image test edilir