Docker Compose Nedir?
İngilizce: Docker Compose
Docker Compose, birden fazla konteyneri tek YAML dosyasıyla tanımlayıp yerel geliştirme veya test ortamında birlikte çalıştırmayı sağlar.
Docker Compose Nedir?
Docker Compose, bir uygulamanın web sunucusu, veritabanı, cache, worker ve mesaj kuyruğu gibi birden fazla konteynerden oluşan parçalarını tek bir compose.yml dosyasında tanımlamaya yarar. Tek komutla aynı ağ, volume ve ortam değişkenleriyle çalışan yerel bir uygulama kümesi ayağa kalkar.
Nasıl Çalışır?
Compose dosyasında her servis için kullanılacak imaj, build yolu, port eşlemesi, volume, environment ve bağımlılıklar yazılır. docker compose up komutu bu tanımı okuyarak gerekli imajları indirir veya üretir, konteynerleri aynı proje ağına bağlar ve logları tek akışta gösterir.
depends_on yalnızca başlatma sırasını etkiler; bir veritabanının gerçekten hazır olup olmadığını garanti etmez. Bu yüzden production’a yakın testlerde healthcheck, retry ve migration adımları ayrıca tasarlanmalıdır.
Nerede Kullanılır?
- Geliştiricinin kendi bilgisayarında aynı stack’i çalıştırması
- CI içinde veritabanı veya cache gerektiren entegrasyon testleri
- Demo ve prototip ortamlarının hızlı kurulması
- PostgreSQL, Redis, Elasticsearch gibi yan servislerin sürüm kontrollü tanımlanması
Docker ve Kubernetes ile İlişkisi
Docker tek konteynerleri paketleme ve çalıştırma aracıdır; Docker Compose ise küçük birden fazla konteyner setini tarif eder. Kubernetes ise çoğunlukla production ölçeğinde scheduling, self-healing ve rolling deployment gibi yetenekler için kullanılır.
İyi hazırlanmış Compose dosyası, yeni ekip üyesinin projeyi kurmasını kolaylaştırır ve “benim makinemde çalışıyor” sorunlarını azaltır; ancak production mimarisiyle birebir aynı kabul edilmemelidir.