Docker Compose Nedir?
Docker Compose, birden fazla konteynerin birbirleriyle etkileşimde bulunmasını sağlayan bir araçtır. Genellikle, bir uygulamanın çalışabilmesi için veritabanı, cache, backend ve frontend gibi birden fazla servisi aynı anda çalıştırmak gerekir. Docker Compose, bu servislere dair yapılandırmayı tek bir dosyada toplar ve hepsini kolayca yönetmenize olanak tanır. Bu sayede, her bir konteyneri tek tek başlatmak yerine tek bir komutla tüm servisi çalıştırabilirsiniz.
Docker Compose Kurulumu
Docker Compose kullanmaya başlamadan önce, bilgisayarınıza Docker Compose’u kurmanız gerekiyor. Docker Compose, Docker’ın bir parçası olarak gelir, ancak yine de bağımsız olarak da kurulabilir. Kurulum için aşağıdaki adımları takip edebilirsiniz:
1. Docker’ı kurun: Docker Compose, Docker’ın üzerinde çalışan bir araçtır. Öncelikle Docker'ı bilgisayarınıza indirip kurmalısınız. Docker'ı indirip kurmak için [Docker’ın resmi sitesini](https://www.docker.com/) ziyaret edebilirsiniz.
2. Docker Compose’u indirin: Docker Compose, Docker ile birlikte gelir ancak bazen güncelleme yapmak gerekebilir. Bunun için terminal veya komut satırında aşağıdaki komutu çalıştırabilirsiniz:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3. Docker Compose’un kurulumunu kontrol edin: Kurulumun doğru yapıldığını kontrol etmek için terminale şu komutu yazabilirsiniz:
docker-compose --version
Eğer doğru şekilde kurulmuşsa, Docker Compose’un versiyonunu gösterecektir.
Docker Compose Yapılandırması
Docker Compose, yapılandırma için bir YAML dosyası kullanır. Bu dosya, hangi servislerin çalışacağı, hangi portların açılacağı ve konteynerlerin nasıl etkileşimde bulunacağı gibi bilgileri içerir. Şimdi basit bir Docker Compose dosyası yazalım.
Örnek olarak, bir uygulama ve ona bağlı bir veritabanı servisinin çalıştığı bir yapı düşünelim:
version: '3'
services:
app:
image: myapp:latest
ports:
- "5000:5000"
depends_on:
- db
db:
image: postgres:latest
environment:
POSTGRES_USER: exampleuser
POSTGRES_PASSWORD: examplepassword
Bu dosyada, `app` servisi `myapp:latest` adlı Docker imajını kullanıyor ve port 5000'i dışarıya açıyor. Aynı zamanda `db` servisi bir PostgreSQL veritabanı çalıştırıyor ve veritabanı kullanıcı adı ve şifresi belirliyor. `depends_on` komutu ise, `app` servisi başlatılmadan önce `db` servisinin başlatılmasını sağlıyor.
Docker Compose ile Çalıştırma
Yukarıdaki yapılandırma dosyasını `docker-compose.yml` olarak kaydedin. Ardından terminalde bu dosyanın bulunduğu dizine gidip aşağıdaki komutu çalıştırarak tüm servisleri başlatabilirsiniz:
docker-compose up
Eğer konteynerlerinizi arka planda çalıştırmak isterseniz, şu komutu kullanabilirsiniz:
docker-compose up -d
Bu komut, tüm konteynerleri başlatacak ve terminali boşaltacaktır.
Docker Compose ile Yönetim
Bir kez çalıştırdığınızda, konteynerlerinizi yönetmek oldukça basittir. Aşağıdaki komutlarla konteynerlerinizi durdurabilir, yeniden başlatabilir ve günlüklerini görüntüleyebilirsiniz:
- Servisleri durdurmak:
docker-compose down
- Servislerin günlüklerini görmek:
docker-compose logs
- Servisleri yeniden başlatmak:
docker-compose restart
Sonuç
Docker Compose, birden fazla servisi kolayca yönetmek için harika bir araçtır. Yapılandırma dosyası sayesinde tüm servislerinizi tek bir noktada kontrol edebilir, başlatabilir, durdurabilir ve güncelleyebilirsiniz. Docker Compose kullanarak, projelerinizi çok daha verimli bir şekilde yönetebilir ve geliştirme sürecinizi hızlandırabilirsiniz. Eğer henüz Docker Compose kullanmadıysanız, kesinlikle denemelisiniz!