20 Şubat 2025 Perşembe

Docker Compose ile Mikro Hizmetlerin Yönetimi: Adım Adım Kılavuz

Docker Compose ile Mikro Hizmetlerin Yönetimi: Adım Adım Kılavuz

Docker Compose, birden fazla konteyneri tek bir dosya üzerinden yönetmeyi sağlayan güçlü bir araçtır. Mikro hizmet mimarisine sahip projelerde, farklı servislerin birlikte çalışmasını kolaylaştırır. Bu yazıda, Docker Compose kullanarak mikro hizmetlerin nasıl yönetileceğini adım adım inceleyeceğiz.

1. Docker Compose Nedir?

Docker Compose, birden çok servisi tek bir docker-compose.yml dosyasında tanımlayarak, tüm servislerin bir arada yönetilmesini sağlar. Özellikle mikro hizmet tabanlı projelerde, bağımsız çalışan servisleri tek komutla başlatmak büyük avantaj sağlar.

2. Docker Compose ile Mikro Hizmetlerin Tanımlanması

Örnek olarak bir web uygulaması ve veritabanından oluşan basit bir yapı oluşturalım.

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    depends_on:
      - database

  database:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: mydb

Bu yapı, bir Nginx web sunucusu ve bir MySQL veritabanı çalıştırır. Web sunucusu, MySQL servisine bağımlıdır, bu yüzden depends_on parametresi ile önce veritabanının başlaması sağlanır.

3. Docker Compose Komutları

Docker Compose ile konteynerleri yönetmek için aşağıdaki komutları kullanabilirsiniz:

  • docker-compose up -d → Servisleri başlatır.
  • docker-compose down → Tüm konteynerleri kapatır.
  • docker-compose ps → Çalışan servisleri listeler.
  • docker-compose logs -f → Servis loglarını takip eder.

4. Docker Compose ile Ortam Değişkenleri Kullanımı

Güvenliği artırmak ve yapılandırmayı esnek hale getirmek için ortam değişkenleri kullanabilirsiniz. Örneğin:

database:
  image: postgres
  environment:
    POSTGRES_USER: ${DB_USER}
    POSTGRES_PASSWORD: ${DB_PASSWORD}

Bu yapılandırmada, .env dosyasındaki değişkenler yüklenerek PostgreSQL veritabanının kullanıcı adı ve şifresi belirlenir.

Sonuç

Docker Compose, mikro hizmetleri yönetmek için güçlü ve kullanımı kolay bir araçtır. Servislerin bağımsız çalışmasını sağlarken, basit komutlarla tüm ekosistemi yönetmenize olanak tanır. Ortaya çıkan avantajlar:

Hiç yorum yok: