Docker Compose Nasıl Kullanılır? – Adım Adım Rehber

Docker Compose, birden fazla container’ı kolayca yönetmek için kullanılan güçlü bir araçtır. Bu rehberde, Docker Compose ile çalışmaya başlamak için temel adımlar ve gerçek dünya örnekleri sunulmaktadır.

BFS

Docker Compose, modern yazılım geliştirme süreçlerinde büyük kolaylıklar sunan ve geliştiricilerin birden fazla container'ı aynı anda yönetmelerine olanak tanıyan harika bir araçtır. Ancak çoğu kişi Docker Compose'un ne olduğunu ve nasıl kullanıldığını ilk başta biraz karmaşık bulabiliyor. Eğer sen de Docker Compose kullanmaya başlamak istiyorsan, doğru yerdesin! Bu yazıda, Docker Compose'un temellerinden başlayıp, gerçek dünya örnekleriyle nasıl kullanılacağını keşfedeceğiz.

Docker Compose Nedir?



Docker Compose, birden fazla Docker container'ını tek bir komutla başlatabilmeyi sağlayan bir araçtır. Özellikle mikro hizmet mimarileri ve birden fazla hizmetin bir arada çalışması gereken projelerde Docker Compose çok kullanışlıdır. Docker Compose ile her bir servisi ayrı ayrı yönetmek yerine, tüm servisleri tek bir YAML dosyasına yazıp, sadece bir komutla tüm container’ları çalıştırabilirsin. Bu, senin için hem zaman kazancı sağlar hem de projeyi yönetmeyi çok daha kolaylaştırır.

Docker Compose ile Çalışmaya Başlamak



Eğer Docker Compose'u sistemine kurmadıysan, ilk iş olarak bunu yapmalısın. Docker’ı kurduktan sonra, Compose da onunla birlikte gelir. Aşağıdaki komutla kurulumun doğru yapıldığından emin olabilirsin:


docker-compose --version


Eğer doğru kurulmuşsa, versiyon bilgisi sana geri dönecektir. Şimdi sıra geldi Docker Compose kullanmaya!

Bir Docker Compose Projesi Oluşturmak



Bir Docker Compose projesi oluşturmak için önce bir `docker-compose.yml` dosyasına ihtiyacımız olacak. Bu dosya, tüm container’ların yapılandırmalarını içerir. Mesela, bir web uygulaması ve bir veritabanı servisi çalıştıracağımızı düşünelim. Bunun için aşağıdaki gibi bir `docker-compose.yml` dosyası oluşturabiliriz:


version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example


Bu dosya, iki container'dan oluşan bir hizmeti tanımlar: bir `web` servisi (Nginx) ve bir `db` servisi (PostgreSQL). `ports` alanı, container'ın dış dünyaya hangi port üzerinden ulaşılacağını belirtirken, `environment` alanı ise container içinde ayarlanması gereken çevre değişkenlerini tanımlar.

Docker Compose ile Servisleri Başlatmak



Şimdi Docker Compose projemizi çalıştırma zamanı! Aşağıdaki komutla tüm servisleri başlatabilirsin:


docker-compose up


Bu komut, `docker-compose.yml` dosyanı oku ve içindeki tüm servisleri başlat. Eğer ilk kez çalıştırıyorsan, gerekli Docker imajlarını indirip, konteynerleri başlatacaktır. Artık web uygulamanı ve veritabanın çalışıyor!

Docker Compose ile Servisleri Durdurmak



Bir Docker Compose projesini durdurmak da oldukça basittir. Servisleri durdurmak için aşağıdaki komutu kullanabilirsin:


docker-compose down


Bu komut, başlatılan container’ları durdurur ve aynı zamanda ağları ve bağlantıları temizler. Yani, projenin temiz bir şekilde kapanmasını sağlar.

Docker Compose ile Çoklu Servisler Çalıştırmak



Birçok projede, sadece tek bir container çalıştırmak yetmez. Genellikle web uygulaması, veritabanı, cache sistemi ve diğer yardımcı hizmetlerin hepsini aynı anda çalıştırmak gerekir. Docker Compose’un en büyük avantajlarından biri, bu tür durumlarda tüm servisleri aynı anda yönetebilmemize olanak tanımasıdır.

Örnek olarak, bir Node.js uygulaması ve Redis gibi bir cache servisi ile bir Compose dosyası oluşturalım:


version: '3'
services:
  app:
    image: node:14
    volumes:
      - .:/app
    command: node /app/index.js
    ports:
      - "3000:3000"
  redis:
    image: redis
    ports:
      - "6379:6379"


Bu Compose dosyasında, bir Node.js uygulaması (`app` servisi) ve Redis servisi bulunmaktadır. Node.js uygulaması, Redis’i veri önbellekleme için kullanacaktır. `volumes` komutu, uygulama kodunun yerel dosyanı ile container’ın içinde bağlanmasını sağlar. Bu sayede kodu değiştirip kaydettiğinde, container’ı tekrar başlatmaya gerek kalmaz.

Docker Compose Avantajları



Docker Compose ile çalışmanın birçok avantajı bulunmaktadır:

1. Basitlik: Birden fazla container’ı yönetmek için tek bir YAML dosyası ve komut kullanabilirsin.
2. Verimlilik: Projelerinde tek bir komutla tüm servisleri başlatıp, durdurabilirsin.
3. Taşınabilirlik: Docker Compose dosyanı paylaşarak, aynı yapılandırma ile başkaları da projeni çalıştırabilir.
4. Entegrasyon Kolaylığı: Mikro servis mimarilerinde, birden fazla servisin kolayca entegre edilmesini sağlar.

Sonuç



Docker Compose, yazılım geliştiricilerin yaşamını kolaylaştıran güçlü bir araçtır. Mikro hizmetlerle çalışıyorsan veya birden fazla container’ı yönetmen gereken bir projen varsa, Docker Compose kesinlikle işini kolaylaştıracaktır. Kendi projelerinde kullanarak bu aracı daha derinlemesine keşfedecek ve geliştirme süreçlerinde büyük bir zaman tasarrufu sağlayacaksın!

Unutma, Docker Compose ile sadece bir komutla tüm servisleri çalıştırabilir, durdurabilir ve yönetebilirsin. Geliştirme sürecin boyunca bu araç sana her zaman fayda sağlayacak.

İ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...