Sobes.tech
Junior

Docker Compose nedir ve nasıl kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Docker Compose, çok konteynerli Docker uygulamalarını tanımlamak ve çalıştırmak için bir araçtır. Uygulamanın servislerini, bağımlılıklarını ve yapılandırmasını tek bir dosyada (genellikle docker-compose.yml) tanımlamaya olanak tanır. Daha sonra, tek bir komutla, tanımlanan tüm servisler başlatılabilir.

Docker Compose kullanımı:

  1. Servislerin Tanımlanması: docker-compose.yml dosyasında, uygulamanın farklı bileşenleri servisler olarak tanımlanır (örneğin, web sunucusu, veritabanı, arka uç API). Her servis için Docker imajı, portlar, hacimler, ortam değişkenleri ve diğer servislerle bağımlılıklar belirtilir.

    # docker-compose.yml dosyası örneği
    version: '3.8'
    services:
      webapp:
        image: my-webapp
        ports:
          - "80:80"
        volumes:
          - .:/app
      database:
        image: postgres:13
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
    
  2. Uygulamayı Çalıştırma: docker-compose up komutu, docker-compose.yml dosyasında tanımlanan tüm servisleri derler, oluşturur ve başlatır.

    # Tüm servisleri arka planda başlat
    docker-compose up -d
    
  3. Uygulamayı Durdurma: docker-compose down komutu, docker-compose up ile oluşturulan konteynerleri, ağları ve hacimleri durdurur ve siler.

    # Servisleri durdur ve sil
    docker-compose down
    

Ana avantajlar:

  • Yapılandırmanın Basitleştirilmesi: Çok konteynerli uygulamanın tüm yapılandırması tek bir dosyada toplanmıştır.
  • Yeniden Üretilebilirlik: Uygulama, farklı makinelerde aynı ortamda kolayca yapılandırılabilir ve başlatılabilir.
  • Yaşam Döngüsü Yönetimi: Tüm servisleri başlatma, durdurma ve yeniden başlatma için basit komutlar.
  • Testler: Bağımlı servislerle (veritabanları, mesaj kuyrukları vb.) hızlıca test ortamları kurmak için uygundur.

QA ortamında, Docker Compose genellikle test ortamlarını hızlıca dağıtmak, karmaşık altyapıları simüle etmek ve test ortamının öngörülebilirliğini sağlamak için kullanılır.