Blogchevron_rightSunucu Yönetimichevron_rightDocker Compose Nedir? Kapsamlı Kullanım Rehberi 2024

Docker Compose Nedir? Kapsamlı Kullanım Rehberi 2024

S
Serversium
calendar_today31 Mayıs 2026
schedule5 dk okuma
Docker Compose Nedir? Kapsamlı Kullanım Rehberi 2024

Docker Compose Nedir ve Neden Kullanılmalı?

Docker Compose, çoklu konteyner uygulamalarını tanımlamak ve çalıştırmak için kullanılan bir araçtır. YAML dosyaları aracılığıyla servislerinizi, ağlarınızı ve birimlerinizi tek bir komutla yapılandırmanıza olanak tanır. Docker konteyner çevresel değişkenleri yönetimi de bu yapının önemli bir parçasıdır.

Docker'ın 2024 raporuna göre, kurumsal kullanıcların %87'si üretim ortamlarında container teknolojilerini tercih ediyor. Docker Compose ise geliştirme ortamlarında standart haline gelmiş durumda.

Docker Compose Temel Kavramları

YAML Yapılandırma Dosyası

docker-compose.yml dosyası, uygulamanızın tüm servislerini tanımlar. Her servis, bir Docker imajı veya Dockerfile içerebilir.

version: '3.8'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/app
    environment:
      - FLASK_ENV=development
  redis:
    image: "redis:alpine"

Servisler Arası İletişim

Docker Compose, varsayılan olarak tüm servisleri aynı ağda çalıştırır ve servis adını hostname olarak kullanmanıza olanak tanır. Bu sayede sunucu performans testi için ortam hazırlamak oldukça kolaylaşır.

Gelişmiş Docker Compose Yapılandırmaları

1. Çoklu Ortam Yapılandırması

Geliştirme, staging ve production ortamları için farklı compose dosyaları kullanabilirsiniz:

  • docker-compose.yml - Temel yapılandırma
  • docker-compose.override.yml - Geliştirme ortamı için özelleştirmeler
  • docker-compose.prod.yml - Production ortamı

2. Bağımlılık Yönetimi

Servislerin başlama sırasını depends_on ile kontrol edebilirsiniz:

services:
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
  web:
    build: .
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
      interval: 10s
      timeout: 5s
      retries: 3

3. Ağ Yapılandırması

Özel ağlar oluşturarak servis izolasyonu sağlayabilirsiniz:

networks:
  frontend:
    driver: bridge
  backend:
    driver: bridge
    
services:
  web:
    networks:
      - frontend
  api:
    networks:
      - frontend
      - backend
  database:
    networks:
      - backend

Volume Yönetimi ve Veri Kalıcılığı

Verilerinizin kalıcılığını sağlamak için named volumes kullanın. Disk bölümleme stratejileri konusunda bilgi almak için sunucu yönetim rehberlerimizi inceleyebilirsiniz.

volumes:
  postgres_data:
  redis_data:
  
services:
  postgres:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
  redis:
    image: redis:alpine
    volumes:
      - redis_data:/data

Hot Reload ve Geliştirme Akışı

Geliştirme sürecini hızlandırmak için volume mounting ve bind mount kullanın:

services:
  nodejs:
    build:
      context: .
      target: development
    volumes:
      - ./src:/app/src
    environment:
      - NODE_ENV=development
    command: npm run dev

Bu yapılandırma ile kaynak kodundaki değişiklikler anında container'a yansır.

Docker Compose vs Kubernetes Karşılaştırması

ÖzellikDocker ComposeKubernetes
Kurulum KarmaşıklığıDüşükYüksek
ÖlçeklenebilirlikTek makineÇoklu cluster
Öğrenme EğrisiDik değilÇok dik
Uygun KullanımGeliştirme/TestProduction
Otomatik KurtarmaYokVar

Production İçin En İyi Uygulamalar

1. Güvenlik Yapılandırması

Production ortamında secrets ve environment değişkenlerini güvenli yönetin:

services:
  app:
    image: myapp:latest
    environment:
      - SECRET_KEY=${SECRET_KEY}
    secrets:
      - db_password
      
secrets:
  db_password:
    file: ./secrets/db_password.txt

2. Kaynak Limitleri

Container kaynak tüketimini sınırlandırın:

services:
  web:
    image: nginx:latest
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
        reservations:
          cpus: '0.25'
          memory: 256M

3. Log Yönetimi

Merkezi log toplama için logging yapılandırması ekleyin:

services:
  app:
    image: myapp
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

Docker Compose Komutları

Temel Docker Compose komutları ve kullanım amaçları:

KomutAçıklama
docker-compose up -dTüm servisleri arka planda başlatır
docker-compose downTüm servisleri durdurur ve temizler
docker-compose psÇalışan servisleri listeler
docker-compose logs -fLogları canlı izler
docker-compose exec web shWeb servisine shell erişimi sağlar
docker-compose buildImage'ları yeniden oluşturur
docker-compose restartTüm servisleri yeniden başlatır

Monitoring ve Sağlık Kontrolleri

Uygulama sağlığını izlemek için healthcheck ekleyin:

services:
  api:
    image: myapi:latest
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

Sunucu güvenliği ve izleme konusunda detaylı bilgi için blog yazılarımızı inceleyebilirsiniz.

Sonuç

Docker Compose, geliştirme ortamlarınızı standardize etmek, tekrarlanabilirlik sağlamak ve ekip verimliliğini artırmak için güçlü bir araçtır. Doğru yapılandırma ile production'a yakın ortamlarda test yapabilir, web hosting çözümlerimizle entegre edebilirsiniz.

Modern yazılım geliştirme süreçlerinde container tabanlı mimariler standart haline gelmiştir. Docker Compose'u etkili kullanarak, geliştirme döngünüzü hızlandırabilir ve deployment süreçlerinizi güvenilir hale getirebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward