Docker Compose Nedir?
Docker Compose, birden fazla konteyneri bir arada çalıştırabilmenizi sağlayan bir araçtır. Tek bir dosya içinde, birden fazla konteynerin nasıl çalışması gerektiğini belirtirsiniz. Böylece, uygulamanızın tüm bileşenlerini (veritabanı, web sunucusu, vb.) aynı anda başlatabilir ve birbirleriyle iletişim kurmalarını sağlayabilirsiniz.
Docker Compose, basitçe çoklu konteyner uygulamalarını tek bir komutla başlatmanızı sağlar. Bu, geliştiricilerin daha hızlı bir şekilde uygulama geliştirmelerine olanak tanır. Her şey yapılandırma dosyasında yer alır, böylece her seferinde aynı ayarları tekrarlamak zorunda kalmazsınız.
Docker Compose ile Yapılandırma
Docker Compose kullanmaya başlamak için öncelikle bir `docker-compose.yml` dosyasına ihtiyacınız var. Bu dosya, uygulamanızın her bir servisini ve bu servislerin birbirleriyle nasıl etkileşeceğini belirtir.
Örnek bir `docker-compose.yml` dosyası:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
Yukarıdaki örnekte, bir web servisi ve bir veritabanı servisi tanımlıyoruz. Web servisi, Nginx imajı üzerinden çalışacak ve 80 numaralı portu dışarıya açacak. Veritabanı servisi ise MySQL 5.7 imajını kullanarak, şifreyi `MYSQL_ROOT_PASSWORD` ortam değişkeni ile belirleyecek.
Docker Compose Komutları
Docker Compose dosyanız hazır olduğunda, birkaç basit komutla tüm uygulamanızı çalıştırabilirsiniz:
1. Docker Compose ile Servisleri Başlatma
İlk adım, Docker Compose dosyanızın olduğu dizine gidip aşağıdaki komutu çalıştırmaktır:
docker-compose up
Bu komut, `docker-compose.yml` dosyasındaki tüm servisleri başlatacaktır. Eğer arka planda çalışmasını isterseniz, `-d` bayrağını ekleyebilirsiniz:
docker-compose up -d
2. Servisleri Durdurma
Çalışan tüm servisleri durdurmak için:
docker-compose down
3. Servis Durumunu Görüntüleme
Servislerinizin durumunu görmek için:
docker-compose ps
Docker Compose ile Ortam Değişkenleri Kullanma
Bazen, uygulamanızın farklı ortamlarda farklı yapılandırmalara ihtiyaç duyabileceğini unutmayın. Bu gibi durumlar için ortam değişkenleri kullanmak oldukça yaygındır.
Docker Compose ile ortam değişkenlerini kullanmak için, `environment` parametresini kullanabiliriz. Örnek:
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
Burada, `MYSQL_ROOT_PASSWORD` ortam değişkenini dışarıdan alıyoruz. Bu sayede, farklı ortamlarda farklı şifreler kullanabiliriz.
Sonuç
Docker Compose, uygulamanızı yönetmeyi oldukça basitleştirir. Birden fazla konteyneri koordine etmenin zorluklarını ortadan kaldırır ve geliştiricilerin hızla uygulama kurulumunu gerçekleştirmelerine yardımcı olur. Bu araç sayesinde, daha hızlı geliştirme süreçleri ve daha verimli uygulama dağıtımları mümkün hale gelir.
Eğer Docker kullanıyorsanız, Docker Compose’u öğrenmek gerçekten işinizi kolaylaştıracaktır. Her şey bir dosyada toplandığında, işlerinizi çok daha hızlı ve düzenli bir şekilde yönetebilirsiniz.