Docker Compose Nasıl Kurulur ve Kullanılır?
Docker Compose Nedir ve Neden Gereklidir?
Docker, containerları izole ortamlarda çalıştırmayı mümkün kılar. Ancak gerçek dünya uygulamaları nadiren tek bir container ile yetinir. Bir web uygulaması genellikle veritabanı, cache sistemi, mesaj kuyruğu ve daha birçok servisten oluşur. İşte bu noktada Docker Compose devreye girer.
Docker Compose, birden fazla container'ı tek bir YAML dosyasında tanımlamanız ve birlikte yönetmenizi sağlar. Multi-container uygulamalarını oluşturmak, başlatmak ve durdurmak çok daha basit hale gelir. Manuel olarak her container'ı ayrı ayrı çalıştırmak yerine, bir komutla tüm sistemi ayağa kaldırabilirsiniz.
Docker Compose kullanmanın temel avantajları:
- Tüm servisleri tek bir dosyada merkezi olarak yönetme
- Geliştirme, test ve üretim ortamlarında tutarlılık sağlama
- Network ve volume yönetimini otomatikleştirme
- Ekip üyeleri arasında aynı ortamı paylaşabilme
Docker Compose Kurulumu: Adım Adım
Docker Compose'u kurulmadan önce, sisteminizde Docker'ın yüklü olması gerekir. Docker Desktop kullananlar (Windows ve macOS) için Docker Compose zaten dahil edilmiştir. Linux kullanıcıları için ise ayrı bir kurulum adımı gereklidir.
Windows ve macOS Kullanıcıları İçin
Docker Desktop'ı indirdikten sonra kurulumu tamamlamak yeterlidir. Docker Desktop kurulum sırasında Docker Compose'u otomatik olarak ekler. Kurulumun başarılı olup olmadığını kontrol etmek için terminal veya komut satırında şu komutu çalıştırabilirsiniz:
docker-compose --version
Versiyon numarası görünürse kurulum başarılı demektir.
Linux Kullanıcıları İçin
Linux'ta Docker Compose'u manuel olarak kurmanız gerekir. GitHub'dan en son versiyonu indirin ve uygun konuma yerleştirin. Terminal'de şu adımları sırasıyla çalıştırın:
- sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- sudo chmod +x /usr/local/bin/docker-compose
- docker-compose --version (doğrulama)
Bu işlem tamamlandıktan sonra Docker Compose kullanıma hazır olur.
İlk Multi-Container Uygulamanızı Oluşturmak
Docker Compose'u öğrenmenin en pratik yolu, basit bir örnek üzerinden gitmektir. Bir web uygulaması (Node.js) ve PostgreSQL veritabanından oluşan bir sistem kuralım.
docker-compose.yml Dosyasını Hazırlama
Proje klasörünüzde docker-compose.yml adında bir dosya oluşturun. Bu dosya YAML formatında yazılır ve uygulamanızın tüm servislerini tanımlar:
version: '3.8'
services:
web:
image: node:18
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://user:password@db:5432/myapp
depends_on:
- db
db:
image: postgres:15
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=myapp
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
Bu yapı, web servisi ile veritabanını tanımlar, aralarında bağlantı kurar ve veri kalıcılığını sağlar.
Uygulamayı Çalıştırma
Docker Compose dosyasının bulunduğu klasörde terminal açın ve şu komutu çalıştırın:
docker-compose up
Bu komut, tanımlanan tüm servisleri başlatır. -d flag'i ekleyerek arka planda çalıştırabilirsiniz:
docker-compose up -d
Servisleri durdurmak için:
docker-compose down
Bu komut tüm container'ları durdurur ve ortamı temizler (volumeler korunur).
Kullanışlı Docker Compose Komutları
- docker-compose ps: Çalışan servisleri listeler
- docker-compose logs: Servis loglarını gösterir
- docker-compose exec: Çalışan bir container'da komut çalıştırır
- docker-compose build: Custom image'ları derler
- docker-compose restart: Servisleri yeniden başlatır
Örneğin, veritabanına doğrudan erişmek için:
docker-compose exec db psql -U user -d myapp
Docker Compose kurulumu ve temel kullanımı öğrendikten sonra, daha karmaşık konfigürasyonlara geçebilirsiniz. Ortam değişkenleri, custom network ayarları ve üretim ortamı optimizasyonları yapabilirsiniz. Docker Compose rehberi sadece başlangıçtır; uygulamalarınızın ihtiyaçlarına göre derinlemesine öğrenmeye devam edebilirsiniz.