Docker Compose Nedir?
Docker Compose, birden fazla Docker konteynerini aynı anda çalıştırmanıza olanak tanıyan bir araçtır. Özellikle, mikro hizmet mimarileri geliştirenler için, Docker Compose, uygulamanızın tüm bileşenlerini (veritabanı, web sunucusu, uygulama sunucusu vb.) bir araya getirmenizi kolaylaştırır. Bu, geliştiriciler için oldukça değerli bir özellik çünkü her bir servisi bağımsız olarak çalıştırmak yerine, tek bir komutla tüm uygulamayı başlatabilirsiniz.
Docker ve Docker Compose'i Windows'a Nasıl Kurarım?
Docker Compose'i kullanabilmek için, öncelikle Docker'ı Windows bilgisayarınıza kurmanız gerekecek. Bunun için aşağıdaki adımları takip edebilirsiniz:
Adım 1: Docker Desktop'ı İndirin
Docker Desktop, Windows kullanıcıları için Docker’ı kolayca kurmak için kullanılan bir uygulamadır. Docker'ın resmi web sitesine giderek, en son sürümünü indirip kurabilirsiniz. Kurulum sırasında sanallaştırmanın etkin olduğundan emin olun.
Adım 2: Docker Compose'i Kurun
Docker Compose, Docker ile birlikte gelir, dolayısıyla Docker'ı kurduktan sonra Compose de otomatik olarak kurulur. Ancak, kurulumun tamamlandığından emin olmak için komut satırına şu komutu girin:
docker-compose --versionEğer Docker Compose'in yüklü olduğunu görüyorsanız, her şey doğru bir şekilde kurulmuştur.
Docker Compose ile Uygulamanızı Nasıl Çalıştırırsınız?
Bir projede Docker Compose kullanmaya başlamak oldukça basittir. Aşağıda, basit bir web uygulamasını çalıştırmak için Docker Compose kullanmanın adımlarını anlatacağım.
Adım 1: Docker Compose Yapılandırma Dosyası (docker-compose.yml) Oluşturun
Her şeyden önce, projeniz için bir `docker-compose.yml` dosyasına ihtiyacınız olacak. Bu dosya, hangi servislerin çalıştırılacağını ve bu servislerin nasıl birbirleriyle etkileşimde bulunacağını tanımlar. Örnek olarak, aşağıdaki basit bir `docker-compose.yml` dosyası, bir web uygulaması ve bir veritabanı konteyneri içerir:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: exampleBu yapılandırma, `nginx` ve `mysql` Docker imajlarını kullanarak web ve veritabanı servislerini başlatır. Web servisi, 80 numaralı portu dışarıya açar ve veritabanı için bir root şifresi tanımlar.
Adım 2: Docker Compose ile Uygulamanızı Başlatın
Yukarıdaki `docker-compose.yml` dosyasını oluşturduktan sonra, uygulamanızı çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
docker-compose upBu komut, `docker-compose.yml` dosyasındaki tüm servisleri başlatacaktır. Eğer arka planda çalıştırmak isterseniz, şu komutu kullanabilirsiniz:
docker-compose up -dAdım 3: Servislerin Durumunu Kontrol Edin
Docker Compose ile başlattığınız servislerin durumunu görmek için aşağıdaki komutu kullanabilirsiniz:
docker-compose psBu komut, tüm konteynerlerin durumunu ve portlarını size gösterir.
Docker Compose ile Uygulamanızı Yönetme
Docker Compose, uygulamanızı kolayca yönetmenize olanak tanır. Örneğin:
Adım 1: Tüm Servisleri Durdurmak
Eğer çalıştırdığınız tüm servisleri durdurmak isterseniz, şu komutu kullanabilirsiniz:
docker-compose downBu komut, hem konteynerleri durdurur hem de ağları ve diğer kaynakları kaldırır.
Adım 2: Yalnızca Bir Servisi Yeniden Başlatmak
Sadece bir servisi yeniden başlatmak isterseniz, aşağıdaki komutu kullanabilirsiniz:
docker-compose restart webBu, sadece `web` servisini yeniden başlatacaktır.
Docker Compose ile Çalışırken İpuçları
- Logları Takip Edin: Docker Compose ile başlattığınız her servisin loglarına ulaşmak için şu komutu kullanabilirsiniz:
docker-compose logs- Yapılandırma Değişikliklerini Güncelleyin: `docker-compose.yml` dosyasındaki değişiklikleri uygulamak için, servislere yeni bir yapılandırma uygulamak üzere şu komutu kullanabilirsiniz:
docker-compose up -d --buildSonuç
Docker Compose, Windows üzerinde uygulama geliştirme ve test etme sürecini büyük ölçüde kolaylaştıran güçlü bir araçtır. Birkaç basit adımda, karmaşık uygulamalar için gerekli olan tüm servisleri tek bir komutla çalıştırabilirsiniz. Bu rehberle Docker Compose kullanımına dair temel bilgilere sahip oldunuz. Artık kendi projelerinizi geliştirmek için hazır olmalısınız!