Azure Container Registry (ACR) Nedir?
Azure Container Registry (ACR), konteyner imajlarınızı güvenli bir şekilde depolamanızı, yönetmenizi ve dağıtmanızı sağlayan yönetimli bir Docker kayıt hizmetidir. Docker Hub’ın kurumsal ve Azure-native alternatifi olarak düşünebilirsiniz. CI/CD pipeline’larınızın merkezinde yer alarak, geliştirmeden üretime kadar konteyner imaj yaşam döngüsünü uçtan uca yönetir.
Neden Docker Hub yerine ACR kullanmalısınız? Kurumsal ortamlarda imaj güvenliği, özel ağ erişimi, coğrafi dağıtım ve Azure servisleriyle entegrasyon kritik gereksinimlerdir. Docker Hub’ın ücretsiz katmanı bu gereksinimlerin çoğunu karşılamaz—ACR ise Azure ekosistemine tam entegre bir çözüm sunar.
ACR Katmanları ve Seçim Rehberi
Basic Katman
Geliştirme ve test ortamları için uygun olan giriş seviyesi katmandır. Düşük depolama ve aktarım kapasitesi sunar, ancak temel özellikler mevcuttur.
Standard Katman
Çoğu üretim iş yükü için yeterli olan orta seviye katmandır. Artırılmış depolama, daha yüksek aktarım hızı ve webhook desteği sağlar.
Premium Katman
Kurumsal ihtiyaçlar için tasarlanmış tam donanımlı katmandır. Geo-replikasyon, içerik güveni (content trust), özel bağlantı (private link) ve müşteri tarafından yönetilen anahtarlarla şifreleme gibi gelişmiş özellikler sunar. Çoklu bölge dağıtımı yapan ekipler için Premium katman şarttır.
ACR Tasks: Otomatik İmaj Oluşturma
ACR Tasks, konteyner sektöründe en az değer biçilen özelliklerden biridir. Geliştirme makinenizde Docker build çalıştırmak yerine, build işlemini bulutta gerçekleştirebilirsiniz. Bunun avantajları düşündüğünüzden çok daha fazladır:
- Multi-platform build: Linux ve Windows imajlarını, ARM64 ve AMD64 mimarilerini tek bir komutla oluşturun.
- Kaynak kodu tetikleyicileri: Git commit’leriniz doğrudan ACR’da build tetikler—ayrı bir CI sistemi gerekmez.
- Base image güncellemeleri: Temel imajınız güncellendiğinde, buna bağlı tüm imajlar otomatik olarak yeniden oluşturulur.
- Zamanlanmış görevler: Düzenli aralıklarla imaj oluşturma veya güvenlik taraması planlayın.
Pratikte: Bir Node.js uygulamanız var ve Dockerfile’ınız node:18-alpine temel imajını kullanıyor. Alpine Linux’ta bir güvenlik yaması yayınlandığında, ACR Tasks bunu algılar ve uygulamanızın imajını güncellenmiş temel imaj üzerinde otomatik olarak yeniden oluşturur. Siz hiçbir şey yapmadan güvenlik açığı kapatılır.
Güvenlik Özellikleri
Güvenlik Açığı Taraması
Microsoft Defender for Containers entegrasyonu ile ACR’daki imajlar otomatik olarak güvenlik açıklarına karşı taranır. CVE veritabanına karşı katmanlar analiz edilir ve kritik zafiyetler raporlanır. CI/CD pipeline’ınızda ACR tarama sonuçlarını kontrol ederek, güvenlik açığı olan imajların dağıtılmasını engelleyebilirsiniz.
Content Trust ve İmza
Docker Content Trust (Notary) ile imajlarınızı dijital olarak imzalayabilirsiniz. Bu sayede, yalnızca yetkili kişiler tarafından onaylanmış imajların dağıtılmasını garanti edersiniz. Supply chain attack’lere karşı kritik bir savunma katmanıdır.
Ağ Güvenliği
Premium katmanda Azure Private Link ile ACR’a yalnızca sanal ağınız üzerinden erişim sağlayabilirsiniz. Firewall kuralları ve servis endpoint’leri ile ağ erişimini kısıtlayabilirsiniz. Managed Identity ile AKS veya App Service gibi Azure hizmetlerinin ACR’a şifre olmadan güvenli şekilde erişmesini sağlarsınız.
Geo-Replikasyon ve Global Dağıtım
Premium katmanın en güçlü özelliği geo-replikasyondur. ACR’daki imajlarınızı birden fazla Azure bölgesine yansıtarak dağıtım gecikme süresini minimize edebilirsiniz. Avrupa’daki AKS kümeniz Batı Avrupa’daki replikadan, Asya’daki kümeniz Güneydoğu Asya’daki replikadan çeker—her seferinde okyanus ötesi veri transferi beklemenize gerek kalmaz.
CI/CD Entegrasyonu
ACR, tüm popüler CI/CD araçlarıyla sorunsuz çalışır:
- Azure DevOps: Docker build + ACR push + AKS deploy pipeline’ları dakikalar içinde oluşturulur.
- GitHub Actions:
azure/docker-loginaction ile doğrudan ACR’a push yapabilirsiniz. - Jenkins/GitLab CI: Docker CLI veya REST API üzerinden entegre çalışır.
İmaj Yaşam Döngüsü Yönetimi
Zamanla ACR’da biriken eski ve kullanılmayan imajlar hem depolama maliyeti artırır hem de güvenlik riski oluşturur. ACR retention policy ve purge komutları ile eski tag’leri otomatik olarak temizleyebilirsiniz. Manifest listesi, tag filtreleme ve yaş bazlı politikalar ile imaj yaşam döngüsünü otomatikleştirin.
ACR Güvenlik En İyi Uygulamaları
Azure Container Registry güvenliği birkaç katmandan oluşur. İlk olarak, registry erişimini Azure AD kimlik doğrulamasıyla sınırlandırın; admin hesabını devre dışı bırakın. Managed Identity ile AKS veya App Service’in registry’ye şifresiz erişimini sağlayın. Network kısıtlamaları için Private Endpoint kullanarak registry’yi yalnızca VNet içinden erişilebilir hale getirin. Firewall kurallarıyla belirli IP aralıklarından erişime izin verin.
İmaj güvenliği için Content Trust (Docker Content Trust) özelliğini etkinleştirin. Bu özellik imajların dijital imzalanmasını sağlar ve yalnızca imzalı imajların çekilmesini zorunlu kılar. Microsoft Defender for Containers entegrasyonuyla registry’deki imajlar otomatik olarak güvenlik açıklarına karşı taranır. CVE veritabanına karşı yapılan bu tarama, bilinen zaafiyetlerin production ortamına ulaşmasını engeller.
Immutable tags özelliğiyle belirli etiketlerin üzerine yazılmasını engelleyebilirsiniz. Bu özellik :latest tag kullanımından kaçınmanız gereken production ortamlarında kritik öneme sahiptir. Her build’e benzersiz bir tag (commit hash, semantic version) atayarak hangi versiyonun nerede çalıştığını her zaman takip edebilirsiniz.
Geo-Replication ve Performans
Premium tier’da geo-replication özelliği, registry’nizi birden fazla Azure bölgesine çoğaltır. Bu sayede AKS cluster’larınız en yakın bölgedeki replica’dan imaj çeker ve pull süreleri önemli ölçüde kısalır. Ayrıca bir bölgede kesinti yaşandığında diğer bölgedeki replica otomatik olarak hizmet vermeye devam eder. Global dağıtılmış uygulamalar için geo-replication vazgeçilmezdir.
ACR Tasks özelliği ile imaj build sürecini bulutta çalıştırabilirsiniz. Lokal makinede Docker build yapmak yerine az acr build komutuyla kaynak kodu doğrudan ACR’ye gönderir ve build orada gerçekleşir. Multi-step task’larla test, build ve push adımlarını YAML dosyasında tanımlarsınız. Base image update trigger ile temel imaj güncellendiğinde bağımlı imajların otomatik yeniden build edilmesini sağlayabilirsiniz.
Sık Sorulan Sorular
ACR tier’ları arasındaki farklar nelerdir?
Basic tier geliştirme ve test için uygundur: 10 GB depolama dahildir. Standard tier küçük üretim ortamları için yeterlidir: daha fazla throughput ve depolama sunar. Premium tier kurumsal ihtiyaçlar için tasarlanmıştır: geo-replication, private link, content trust, customer-managed keys ve 500 GB+ depolama dahildir. Aylık maliyetler Basic ~5 USD, Standard ~20 USD, Premium ~50 USD civarındadır.
Helm chart’larını ACR’de depolayabilir miyim?
Evet. ACR, OCI (Open Container Initiative) uyumlu artifact depolamayı destekler. Helm 3 chart’ları, WASM modülleri ve diğer OCI artifact’ları container imajlarıyla aynı registry’de saklanabilir. helm push komutuyla chart’ları ACR’ye yükleyebilir, helm pull ile çekebilirsiniz.
Sonuç
Azure Container Registry, konteyner tabanlı uygulamalar geliştiren ekipler için vazgeçilmez bir altyapı bileşenidir. Güvenlik, performans ve otomasyon özelikleriyle Docker Hub’ın çok ötesinde bir çözüm sunar. CloudSpark olarak, ACR kurulumu, AKS entegrasyonu ve CI/CD pipeline tasarımı konusunda destek sağlıyoruz. Bize ulaşın, konteyner altyapınızı güçlendirelim.



