Docker Compose Nedir ve Neden Kullanılır?
Docker Compose, Docker konteynerlerini tanımlamak ve çalıştırmak için kullanılan bir araçtır. Özellikle mikroservis mimarisine sahip uygulamalarda oldukça faydalıdır. Docker Compose ile her servisi kendi konteynerinde çalıştırabilir ve bu servislere ait tüm ayarları tek bir dosya üzerinden yönetebilirsiniz. Bu sayede farklı servisler arasında iletişim kurmak, ortam değişkenlerini ayarlamak ve logları takip etmek çok daha kolay hale gelir.
Docker Compose Kurulumu
Docker Compose kullanabilmek için öncelikle sisteminize Docker’ın kurulu olması gerekiyor. Eğer Docker kurulu değilse, önce Docker'ı kurmamız gerek.
1. Docker'ı kurmak için terminali açın ve aşağıdaki komutu çalıştırın:
sudo apt update
sudo apt install docker.io
2. Docker'ı kurduktan sonra, Docker Compose'u kurmak için şu komutları takip edin:
sudo apt install curl
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. Kurulumun tamamlandığını doğrulamak için aşağıdaki komutu çalıştırabilirsiniz:
docker-compose --version
Eğer her şey doğru şekilde kurulmuşsa, Docker Compose’un sürümü terminalde görünecektir.
Docker Compose ile Basit Bir Uygulama Kurma
Docker Compose’u kurduktan sonra, şimdi bir uygulama oluşturmanın zamanı geldi. Bu bölümde basit bir web uygulaması kurarak nasıl çalıştığını göstereceğim.
1. İlk olarak bir dizin oluşturun ve içine bir Docker Compose dosyası (`docker-compose.yml`) ekleyin:
mkdir myapp
cd myapp
touch docker-compose.yml
2. `docker-compose.yml` dosyasına aşağıdaki içeriği ekleyin. Bu örnekte, basit bir Nginx servisi çalıştıracağız:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
Bu dosya, Nginx’in en son sürümünü kullanarak bir konteyner çalıştırır ve 8080 portunu 80 portuna yönlendirir. Yani, tarayıcınızda `http://localhost:8080` adresini açarak Nginx’in varsayılan sayfasını görebilirsiniz.
3. Docker Compose dosyasını kaydettikten sonra, terminalden aşağıdaki komutu çalıştırarak servisi başlatın:
docker-compose up
Bu komut, `docker-compose.yml` dosyasını kullanarak gerekli konteynerleri başlatır. Artık tarayıcınızda `http://localhost:8080` adresine giderek Nginx’in varsayılan sayfasını görebilirsiniz.
Docker Compose ile Çalışma ve Yönetim
Docker Compose kullanarak birden fazla konteyner çalıştırabilir ve bunları kolayca yönetebilirsiniz. İşte bazı temel komutlar:
- Konteynerleri başlatmak için:
docker-compose up
- Arka planda konteynerleri çalıştırmak için:
docker-compose up -d
- Çalışan konteynerleri durdurmak için:
docker-compose down
- Konteynerleri yeniden başlatmak için:
docker-compose restart
Docker Compose ile Çoklu Servisler
Birçok uygulama, sadece bir konteynerle sınırlı kalmaz. Örneğin, bir web uygulamasının veri tabanı, arka planda çalışan bir API servisi gibi birçok servise ihtiyacı olabilir. Docker Compose, bu tür bir yapı için mükemmel bir çözüm sunar.
Aşağıdaki örnekte, hem Nginx hem de PostgreSQL servisi çalıştırıyoruz:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: example
Bu dosyada, bir web servisi ve bir veri tabanı servisi bulunuyor. Web servisi Nginx ile çalışırken, db servisi PostgreSQL veritabanını çalıştırır. Bu tür bir yapı, mikroservis mimarisine uygun bir şekilde kolayca genişletilebilir.
Docker Compose ile Ortam Değişkenleri
Konteynerler arasında iletişim kurarken bazen ortam değişkenlerine ihtiyaç duyabilirsiniz. Docker Compose, bu ortam değişkenlerini kolayca yapılandırmanıza olanak tanır. Örneğin, bir web servisi için bir API anahtarı belirlemek gerekebilir.
version: '3'
services:
web:
image: nginx:latest
environment:
- API_KEY=your_api_key_here
Bu şekilde ortam değişkenleri tanımlanabilir ve servisinizi başlattığınızda bu değişkenler otomatik olarak konteynerlere aktarılır.
Sonuç
Docker Compose, çoklu konteynerler ile çalışmayı son derece kolaylaştıran bir araçtır. Bu yazıda, Linux üzerinde Docker Compose ile nasıl hızlıca başlayabileceğinizi, basit bir uygulama kurarak ve Docker Compose komutlarını kullanarak nasıl yönetebileceğinizi öğrendiniz. Docker Compose ile birden fazla servisi bir arada çalıştırabilir, uygulamanızın yönetimini basitleştirebilir ve hızla geliştirme yapabilirsiniz. Umarım bu rehber size yardımcı olmuştur!