Docker Compose Nasıl Kullanılır ve Yapılandırılır? Adım Adım Kılavuz

Docker Compose Nasıl Kullanılır ve Yapılandırılır? Adım Adım Kılavuz

Docker Compose kullanarak birden fazla konteyneri kolayca yönetmek ve yapılandırmak için adım adım bir rehber.

Al_Yapay_Zeka

Docker, yazılım geliştirme dünyasında devrim yaratan bir araç haline geldi. Konteyner teknolojisi ile uygulamalarınızı hızla çalıştırmak, taşımak ve izole etmek mümkün. Ancak Docker Compose, Docker’ın gücünü bir adım öteye taşır. Peki, Docker Compose nedir ve nasıl kullanılır? Bu yazıda, Docker Compose ile ilgili her şeyi anlatacağım ve adım adım yapılandırmayı öğreteceğim.

Docker Compose Nedir?



Docker Compose, birden fazla Docker konteynerini tanımlamak ve çalıştırmak için kullanılan bir araçtır. Tek bir YAML dosyası ile birden fazla konteyneri koordine edebilir, bunları aynı anda başlatabilir ve yönetebilirsiniz. Özellikle mikro hizmet mimarisi (microservices architecture) kullanıyorsanız, Docker Compose her şeyin uyumlu şekilde çalışmasını sağlamak için oldukça faydalıdır.

Docker Compose kullanarak, birden fazla konteyneri kolayca tanımlayabilir ve bunları tek bir komutla çalıştırabilirsiniz.

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



Docker Compose için temel yapılandırma dosyası, "docker-compose.yml" dosyasıdır. Bu dosya, servislerinizi, ağları ve hacimleri tanımlar. Her servis, bir Docker konteynerini temsil eder ve genellikle bir hizmetin tüm yapılandırmalarını içerir.

İşte temel bir `docker-compose.yml` dosyasının örneği:


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


Yukarıdaki örnekte, iki servis tanımlanıyor: `web` ve `db`. `web` servisi, Nginx web sunucusunun en son sürümünü çalıştırırken, `db` servisi PostgreSQL veritabanını çalıştırmaktadır. Her iki servis de kendi Docker imajlarını kullanır.

Docker Compose Kullanarak Uygulama Çalıştırma



Docker Compose ile birden fazla konteyneri çalıştırmak oldukça basittir. Tek bir komutla, tüm servislere ait konteynerler başlatılabilir. Bunun için, terminal veya komut satırına şu komutu yazabilirsiniz:


docker-compose up


Bu komut, `docker-compose.yml` dosyanızdaki tüm servisleri başlatır ve konteynerleri çalıştırmaya başlar. Eğer ilk kez çalıştırıyorsanız, Docker Compose gerekli imajları çekip konteynerleri oluşturacaktır.

Eğer arka planda çalıştırmak isterseniz, şu komutu kullanabilirsiniz:


docker-compose up -d


Bu komut, tüm servisleri arka planda çalıştırır. Artık uygulamanız, Docker konteynerleri içinde çalışıyor!

Docker Compose ile Servis Yönetimi



Docker Compose kullanarak yalnızca uygulamanızı başlatmakla kalmaz, aynı zamanda servislerinizi yönetebilirsiniz. İşte bazı temel komutlar:

- Servisleri durdurmak:

  docker-compose down
  


Bu komut, tüm konteynerleri durdurur ve ardından temizler.

- Konteynerleri yeniden başlatmak:

  docker-compose restart
  


Servislerinizi yeniden başlatmak için bu komut oldukça faydalıdır.

- Servislerin durumunu kontrol etmek:

  docker-compose ps
  


Bu komut, başlatılmış olan tüm servislerin durumunu gösterir.

Docker Compose ile Veritabanı ve Diğer Servisleri Yapılandırma



Docker Compose sadece web uygulamaları için değil, aynı zamanda veritabanları ve diğer arka uç servisleri için de mükemmel bir çözümdür. Örneğin, bir PostgreSQL veritabanı ve Nginx web sunucusu çalıştırmak için bir yapılandırma dosyası oluşturabilirsiniz.

Örnek bir yapılandırma:


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

networks:
  mynetwork:
    driver: bridge


Burada, `web` ve `db` servisleri aynı ağda (`mynetwork`) çalışıyor. Böylece, konteynerler birbirleriyle kolayca iletişim kurabilir.

Docker Compose ve Hacimler (Volumes)



Docker Compose ile hacimler (volumes) kullanarak veri kalıcılığı sağlayabilirsiniz. Hacimler, verilerinizi konteynerin yaşam döngüsünden bağımsız olarak saklamanızı sağlar.

Aşağıda bir hacim kullanımı örneği yer almaktadır:


version: '3'
services:
  web:
    image: nginx:latest
    volumes:
      - ./mydata:/usr/share/nginx/html


Bu örnekte, `mydata` adlı yerel klasör, Nginx’in içerik dizinine bağlanır. Bu sayede, konteyner yeniden başlatıldığında bile veriler kaybolmaz.

Sonuç: Docker Compose İle Kolay Uygulama Yönetimi



Docker Compose, çoklu konteynerleri yönetmek için vazgeçilmez bir araçtır. Hem geliştirme aşamasında hem de üretim ortamlarında uygulamalarınızı kolayca yönetmek, başlatmak ve durdurmak için Docker Compose’tan faydalanabilirsiniz. Bu yazıda, Docker Compose’ın ne olduğunu, nasıl yapılandırıldığını ve çeşitli özelliklerini öğrendik. Eğer daha karmaşık projelerle uğraşıyorsanız, Docker Compose size ciddi anlamda zaman kazandıracaktır.

Unutmayın, Docker Compose ile bir kez öğrendiğinizde, çok daha hızlı ve etkili bir şekilde uygulama geliştirebilirsiniz!

İlgili Yazılar

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

Karmaşık Veri Yapılarıyla Çalışırken Verimliliği Artıran 7 Python Kütüphanesi

Python, yazılım geliştiricilerinin ve veri bilimcilerinin başvurdukları en güçlü araçlardan biri. Özellikle karmaşık veri yapılarıyla çalışırken, doğru kütüphaneyi kullanmak projelerinizde zaman ve enerji tasarrufu sağlamanızı sağlar. Bu yazıda, karmaşık...

Yapay Zeka ile Kodlama: Geliştiriciler İçin Yeni Nesil Yardımcılar

Yapay Zeka ve Kodlama: Geleceği Şekillendiren Bir GüçKod yazmak, her geliştiricinin hayatında bir tutku, bir zorluk ve aynı zamanda bir sanat. Ancak teknolojinin gelişmesiyle birlikte, bu süreç daha önce hiç olmadığı kadar hızlı ve verimli hale gelmeye...

Geleceğin Sunucuları: Kendi Bulut Altyapınızı Kurmanın Adımları (Linux Tabanlı KVM ve Docker Kullanarak)

Günümüzün dijital dünyasında, bulut altyapılarının gücü her geçen gün daha fazla önem kazanıyor. Ancak, bulut hizmetlerine erişim, çoğu zaman büyük şirketler için uygun olsa da küçük işletmeler ve girişimciler için maliyetli olabilir. Peki, kendi bulut...

Yapay Zeka Destekli Yazılım Geliştirme: 2025'te Geliştiriciler İçin İpuçları ve Araçlar

Yazılım geliştirme dünyası hızla değişiyor. Geliştiricilerin karşılaştığı yeni zorluklar, teknoloji dünyasında her geçen gün bir adım daha ileri gitmemize neden oluyor. Ancak belki de en büyük değişim, yapay zekanın (AI) yazılım geliştirme süreçlerine...

Yapay Zeka ile Kod Yazarken Geliştiricilerin Karşılaştığı 5 Zorluk ve Çözümleri

Yapay zeka (AI) son yıllarda yazılım geliştirme dünyasında devrim yaratmaya devam ediyor. Geliştiriciler, AI'nin sunduğu olanaklarla kod yazmayı hızlandırırken, aynı zamanda bu yeni teknolojinin getirdiği bazı zorluklarla da karşılaşıyorlar. Eğer siz...

JavaScript Async/Await: Kodunuzu Sıfır Hata ile Optimize Etmenin Sırları

JavaScript dünyasında asenkron programlamanın gücünü keşfetmeye hazır mısınız? Eğer siz de yazılım geliştirme sürecinizi hızlandırmak ve daha verimli hale getirmek istiyorsanız, Async/Await kavramını anlamak ve kullanmak size büyük avantaj sağlayacak....