Docker Compose ile Kolayca Çalışma Ortamları Kurun ve Yönetim Yapın

Docker Compose kullanarak uygulamanızdaki hizmetleri kolayca yapılandırın, yönetin ve ölçeklendirin.

BFS

Docker Compose, geliştiricilerin çoklu konteyner tabanlı uygulamaları kolayca oluşturup yönetebilmeleri için harika bir araçtır. Docker'ı zaten kullanıyorsanız, Compose ile daha verimli ve düzenli bir yapı kurmak mümkün. Peki, Docker Compose nedir, nasıl kullanılır ve yapılandırılır? Gelin, adım adım bu sorulara cevap verelim.

Docker Compose Nedir?

Docker Compose, birden fazla Docker konteynerini tek bir yapılandırma dosyasıyla (genellikle `docker-compose.yml`) tanımlamanıza olanak tanır. Bu sayede mikro hizmet mimarileri ve karmaşık uygulamalar, tek bir komutla başlatılıp yönetilebilir. Özellikle, uygulamanızda birden fazla servis (veritabanı, web sunucusu, vb.) çalıştırıyorsanız, Compose tam da ihtiyacınız olan şeydir.

Docker Compose Yapılandırma Dosyası (docker-compose.yml)

Docker Compose dosyasını yazarken, her şeyin düzenli olması ve uyum içinde çalışması önemlidir. Dosyanın temel yapı taşları şunlardır:

1. Versiyon (version): Docker Compose'un hangi sürümünü kullanacağınızı belirler.
2. Hizmetler (services): Her bir konteyneri tanımladığınız alandır. Her bir servis bir konteyneri ifade eder.
3. Ağlar (networks): Hizmetler arasındaki iletişimi yönetir.
4. Ciltler (volumes): Verilerin kalıcı olmasını sağlar.

Örnek bir `docker-compose.yml` dosyasına göz atalım:


version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    networks:
      - app-network

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    networks:
      - app-network

networks:
  app-network:
    driver: bridge


Bu dosyada, iki servis tanımladık: bir web servisi (Nginx ile) ve bir db servisi (MySQL ile). Web servisi, port 80 üzerinden erişilebilirken, MySQL veritabanının root parolası `example` olarak ayarlanmış.

Docker Compose ile Hizmetleri Çalıştırmak

Docker Compose ile uygulamanızı başlatmak çok kolay! Aşağıdaki komutla, yapılandırma dosyanızdaki tüm servisleri bir arada başlatabilirsiniz:


docker-compose up


Bu komut, `docker-compose.yml` dosyasındaki servisleri başlatacak ve her şey hazır olana kadar bekleyecektir. Eğer sadece bir servis başlatmak isterseniz, aşağıdaki komutu kullanabilirsiniz:


docker-compose up web


Bu, sadece web servisini başlatır.

Docker Compose ile Hizmetleri Arka Planda Çalıştırmak

Eğer hizmetlerinizi arka planda çalıştırmak isterseniz, `-d` (detached) parametresini kullanabilirsiniz:


docker-compose up -d


Bu komut, servislerinizi arka planda çalıştırarak terminali serbest bırakır.

Docker Compose ile Hizmetleri Durdurmak

Docker Compose kullanarak çalıştırdığınız hizmetleri durdurmak da oldukça basittir. Tek bir komut ile tüm konteynerleri kapatabilirsiniz:


docker-compose down


Bu komut, çalışmakta olan tüm konteynerleri durdurur ve siler. Ancak, verilerinizi kaybetmek istemiyorsanız, veri kalıcılığını sağlamak için ciltlerinizi (volumes) koruyabilirsiniz.

Docker Compose ile Güncelleme Yapmak

Docker Compose ile sisteminizi güncellemek için aşağıdaki komutla en son imajları çekebilirsiniz:


docker-compose pull


Bu, tüm servislerinizin en son sürümlerini indirir. Sonrasında, yeni sürümleri başlatmak için tekrar:


docker-compose up -d


komutunu çalıştırabilirsiniz.

Docker Compose ve Çevresel Değişkenler

Docker Compose dosyalarınızda çevresel değişkenler kullanarak yapılandırmanızı daha esnek hale getirebilirsiniz. Örneğin, bir veritabanının parolasını çevresel değişkenlerle almak için:


version: '3.8'

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}


Burada, `DB_PASSWORD` çevresel değişkeninin değerini alır ve MySQL servisinin root parolası olarak kullanır.

Docker Compose İle Yalnızca Dockerfile İle Çalışmak

Eğer uygulamanız için özel bir Docker imajı oluşturmak istiyorsanız, Dockerfile kullanarak kendi imajınızı oluşturabilir ve Compose dosyanızda bu imajı belirtebilirsiniz.


version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5000:5000"


Burada, `Dockerfile` dosyanızı belirtilen konumdan (bu örnekte aynı dizinden) kullanarak bir imaj inşa ediyorsunuz.

Docker Compose İle Ölçeklenebilir Uygulamalar

Docker Compose, aynı servisten birden fazla örnek çalıştırarak uygulamanızı ölçeklendirebilir. Örneğin, `web` servisini 3 örnekle çalıştırmak için şu komutu kullanabilirsiniz:


docker-compose up --scale web=3


Bu komut, `web` servisini 3 örnekle başlatacak ve yük dengelemesiyle daha fazla trafiği kaldırmanızı sağlayacaktır.

Sonuç

Docker Compose, konteyner tabanlı uygulamaları yönetmek ve geliştirmek için harika bir araçtır. Tüm servislerinizi tek bir dosyada tanımlayarak ve sadece birkaç komutla çalıştırarak zaman kazanabilir, karmaşık yapılandırmaları kolayca yönetebilirsiniz. Geliştiriciler için Docker Compose, projelerin verimli bir şekilde geliştirilmesini sağlayan güçlü bir araçtır. Docker Compose'un sunduğu esneklik ve kullanım kolaylığı sayesinde, konteyner yönetimini hiç olmadığı kadar basit bir hale getirebilirsiniz.

İlgili Yazılar

Benzer konularda diğer yazılarımız

ASP.NET Core ile Mobil Uygulama Geliştirme: Cross-Platform Web ve Mobil Uygulama Birleştirme

Günümüzde mobil uygulamalar hayatımızın ayrılmaz bir parçası haline geldi. Akıllı telefonlarımızda geçirdiğimiz zamanın büyük bir kısmını mobil uygulamalar sayesinde geçiriyoruz. Peki, bir mobil uygulama geliştirirken karşılaştığımız zorlukları nasıl...

Modern Yazılım Geliştirme Süreçlerinde Yapay Zeka ve Otomasyonun Rolü: 2025’te Yeni Başlangıçlar

Yazılım geliştirme dünyası hızla evriliyor. 2025 yılına adım attığımızda, bu süreçte yapay zeka ve otomasyonun rolü hiç olmadığı kadar önemli hale geldi. Geçmişte yazılım geliştirme yalnızca kod yazmak ve sistemleri test etmekle sınırlıydı. Ancak bugünün...

Yapay Zeka ile Veri Gizliliği: Yeni Nesil Şifreleme Yöntemleri ve Geleceği

** Veri gizliliği, dijital çağın en önemli konularından biri haline geldi. Günümüz dünyasında her an bir dijital iz bırakıyoruz: sosyal medya paylaşımlarından, online alışverişlere kadar. Bu dijital ayak izlerinin korunması, hem bireysel hem de kurumsal...