Docker Compose ile Kolayca Konteyner Yönetimi Nasıl Yapılır?

Docker Compose, birden fazla konteyneri tek bir komutla yönetmeye yardımcı olan güçlü bir araçtır. Linux üzerinde nasıl kullanılacağını anlatan bu yazıda, Docker Compose ile hizmetlerinizi kolayca başlatabilir ve yönetebilirsiniz.

BFS

Docker ve konteyner teknolojileri son yıllarda yazılım dünyasında devrim yarattı. Geliştiriciler ve sistem yöneticileri, uygulamalarını daha verimli, taşınabilir ve izolasyonlu bir şekilde çalıştırmak için Docker’ı sıklıkla kullanıyor. Ancak, birden fazla konteyneri yönetmek, doğru yapılandırmaları sağlamak bazen karmaşık olabilir. İşte burada devreye Docker Compose giriyor. Docker Compose, birden fazla konteyneri tanımlamanıza ve yönetmenize olanak tanır, böylece çoklu konteyner uygulamalarını tek bir komutla kolayca başlatabilirsiniz.

## Docker Compose Nedir?

Docker Compose, birden fazla Docker konteynerini yönetmek için kullanılan güçlü bir araçtır. Birden fazla hizmetin (service) birbirleriyle uyumlu bir şekilde çalışmasını sağlayarak, karmaşık uygulama altyapılarının kurulumunu ve yönetimini basitleştirir. Örneğin, bir uygulama veritabanı, web sunucusu ve arka uç hizmetleri gibi farklı bileşenlere sahip olabilir. Docker Compose sayesinde, bu hizmetlerin her birini ayrı ayrı çalıştırmak yerine, tek bir yapılandırma dosyasından tüm hizmetlerinizi başlatabilirsiniz.

## Docker Compose Kurulumu

İlk adım olarak, Docker Compose’u sistemimize kurmamız gerekiyor. Linux üzerinde Docker Compose kurmak oldukça basittir. Terminali açıp aşağıdaki komutları takip edebilirsiniz:


sudo apt-get update
sudo apt-get install docker-compose


Kurulumdan sonra, Docker Compose’un doğru şekilde yüklendiğinden emin olmak için şu komutu kullanabilirsiniz:


docker-compose --version


Bu komut, Docker Compose sürümünü göstererek kurulumun başarılı olduğunu doğrular.

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

Docker Compose, her bir konteynerin nasıl çalışması gerektiğini tanımladığınız bir yapılandırma dosyasına dayanır. Bu dosya genellikle docker-compose.yml olarak adlandırılır. Bu dosya içinde konteynerlerinizi, ağ yapılarını, hacimleri ve çevresel değişkenleri belirtebilirsiniz.

Aşağıda basit bir docker-compose.yml örneği bulabilirsiniz. Bu örnekte, bir web uygulaması için bir nginx ve bir mysql veritabanı konteyneri çalıştırılmaktadır.


version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example


Burada, iki farklı hizmet tanımlanmıştır:
1. web: Nginx web sunucusu, 8080 portunu 80 portuna yönlendirerek çalışacak.
2. db: MySQL veritabanı, root kullanıcısı için bir parola belirlenmiş.

Bu basit yapılandırma ile, web sunucusu ve veritabanı konteynerleri birlikte çalışmaya hazır hale gelir.

## Docker Compose ile Hizmetleri Başlatmak

Docker Compose dosyanızı oluşturduktan sonra, tüm hizmetleri tek bir komutla başlatabilirsiniz. Terminalde, docker-compose.yml dosyanızın bulunduğu dizine gidin ve şu komutu çalıştırın:


docker-compose up


Bu komut, belirtilen tüm konteynerleri başlatır ve çıktıları terminalde gösterir. Eğer arka planda çalışmasını istiyorsanız, aşağıdaki komutu kullanabilirsiniz:


docker-compose up -d


Bu komut, konteynerleri arka planda başlatır ve terminali tekrar kullanmanıza olanak tanır.

## Docker Compose ile Konteyner Durumunu Kontrol Etmek

Çalışan konteynerlerin durumunu görmek için şu komutu kullanabilirsiniz:


docker-compose ps


Bu komut, çalışmakta olan konteynerler hakkında bilgi verir.

## Docker Compose ile Hizmetleri Durdurmak ve Temizlemek

Konteynerlerinizi durdurmak ve kaldırmak için şu komutu kullanabilirsiniz:


docker-compose down


Bu komut, tüm hizmetleri durdurur ve ilgili konteynerleri temizler.

## Docker Compose ile Volümler ve Ağaç Yapıları Kullanmak

Karmaşık uygulamalarla çalışırken, verilerinizi saklamak ve konteynerler arası iletişimi sağlamak için Docker Compose’un sunduğu volümler ve ağaç yapıları çok yararlıdır. Volümler, konteynerlerin veri kaybı olmadan yeniden başlatılmasına olanak tanır. Ayrıca, konteynerler arası ağ yapısını belirleyerek, bir konteynerin diğerine erişmesini sağlayabilirsiniz.

Örneğin, bir veritabanı volümü eklemek için şu şekilde bir yapılandırma kullanabilirsiniz:


version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

volumes:
  db-data:


Bu şekilde, veritabanınızın verilerini db-data isminde bir volume ile kalıcı hale getirebilirsiniz.

## Sonuç

Docker Compose, konteyner yönetimini büyük ölçüde basitleştiren ve geliştiricilerin işini kolaylaştıran bir araçtır. Artık tek bir komutla çoklu hizmetleri başlatabilir, durdurabilir ve yönetebilirsiniz. Bu yazıda Docker Compose’un temel kullanımını ve bazı pratik ipuçlarını ele aldık. Kendi projelerinizde Docker Compose’u kullanarak zaman kazandırabilir ve uygulama altyapınızı daha verimli hale getirebilirsiniz.

Unutmayın, Docker Compose her geçen gün daha fazla gelişiyor ve Docker ekosisteminin vazgeçilmez bir parçası haline geliyor. Hadi, hemen Docker Compose’u projelerinize dahil edin ve konteyner dünyasına adım atın!

İlgili Yazılar

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

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

Yazılım Geliştiriciler İçin Verimli Çalışma Alanı Oluşturmanın İpuçları: En İyi Araçlar ve Yöntemler

Verimli Bir Çalışma Alanı Neden Önemlidir?Yazılım geliştirici olmanın zorluklarından biri de sürekli odaklanmış ve üretken olabilmektir. Bir geliştirici olarak, işlerinizin çoğunu bilgisayar başında geçirirsiniz ve bu süre zarfında verimli bir çalışma...

Kodunuzu Temiz Tutun: Yazılımda 'Yavaş Kodu' Tespit Etmenin 7 Etkili Yolu

Yazılım geliştirme dünyasında zamanın ne kadar kıymetli olduğunu hepimiz biliyoruz. Yazdığınız kodun hızlı ve verimli olması, projelerinizi başarılı kılmanın anahtarıdır. Ama ne yazık ki, çoğu zaman kodu hızlı yazmak uğruna temizliği ihmal edebiliriz....