Docker Compose Nedir?
Docker Compose, Docker konteynerlerini bir arada çalıştırmak için kullandığınız bir araçtır. Hangi servisin hangi konteynerde çalışacağını, hangi portları kullanacağını ve birbirleriyle nasıl iletişim kuracaklarını belirleyen bir yapılandırma dosyasına ihtiyaç duyarız. Bu yapılandırmayı bir "docker-compose.yml" dosyasında toplarız ve ardından sadece bir komutla tüm sistemi ayağa kaldırabiliriz.
Peki, Docker Compose'ı kullanmak ne kadar kolay olabilir ki? Hadi gelin, adım adım öğrenelim!
Docker Compose İle İlk Projemizi Kuruyoruz
Bir Docker Compose projesi başlatmak için ilk önce Docker'ın yüklü olması gerektiğini unutmayın. Eğer Docker'ı yüklemediyseniz, [Docker'ın resmi sitesinden](https://www.docker.com/get-started) yükleme işlemini gerçekleştirebilirsiniz.
Şimdi, Docker Compose kullanarak basit bir web uygulaması ve bir veri tabanını birleştireceğiz. Amacımız, birkaç farklı servisi tek bir komutla başlatmak ve yönetmek olacak.
Adım 1: Proje Dosyalarını Oluşturun
Projenizin kök dizininde bir "docker-compose.yml" dosyası oluşturun. Bu dosya, tüm yapılandırmaları içerecek. Örneğin, bir web uygulaması ve MySQL veri tabanı kullanacağımızı varsayalım. İşte temel bir "docker-compose.yml" dosyasının örneği:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydb
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
Bu basit yapılandırmada, "web" servisi için Nginx'in en son sürümünü kullanıyoruz ve bu servisi 8080 portundan dışarıya açıyoruz. Aynı zamanda, MySQL servisini çalıştırmak için gerekli olan ortam değişkenlerini de ayarlıyoruz. Veritabanı verilerini kalıcı hale getirmek için bir "volume" tanımlıyoruz.
Adım 2: Docker Compose ile Servisleri Başlatın
Şimdi, her şey hazır! Terminali açın ve proje dizininde şu komutu çalıştırarak tüm servislere başlatma verin:
docker-compose up
Bu komut, Docker Compose'ın yapılandırmanızı okumasını ve belirtilen servislere göre konteynerleri başlatmasını sağlar. Ekranda servislerin başlatıldığını göreceksiniz. Artık web uygulamanızı ve veri tabanınızı aynı anda çalıştırabilirsiniz!
Adım 3: Servisleri Yönetmek
Docker Compose ile çalışmanın en güzel yanı, servislere dair her şeyi tek bir komutla yönetebilmenizdir. Örneğin, tüm konteynerleri durdurmak için şu komutu verebilirsiniz:
docker-compose down
Bu komut, tüm servisleri durdurur ve oluşturulan tüm kaynakları temizler. Eğer sadece bazı servisleri durdurmak isterseniz, şu komutları kullanabilirsiniz:
docker-compose stop web
docker-compose stop db
Adım 4: Servislerinizi Güncelleyin
Projeler genellikle gelişen ve değişen şeylerdir. Docker Compose ile hizmetlerinizi güncellemek oldukça kolaydır. Örneğin, Nginx'in yeni bir sürümünü kullanmak istiyorsanız, "docker-compose.yml" dosyasındaki "image" kısmını değiştirirsiniz ve ardından şu komutu çalıştırarak güncellemeyi uygulayabilirsiniz:
docker-compose up -d
Bu komut, değişikliklerinizi alır ve servisinizi arka planda günceller.
Docker Compose ile Çalışmanın Avantajları
Docker Compose ile çalışmanın pek çok avantajı bulunuyor:
1. Kolay Yönetim: Birden fazla servisi tek bir komutla yönetebilirsiniz.
2. Hızlı Başlangıç: Projelerinizi hızlıca başlatabilir ve geliştirme sürecini hızlandırabilirsiniz.
3. Taşınabilirlik: Projenizi başka bir makineye taşımak çok kolaydır, çünkü her şey "docker-compose.yml" dosyasında yapılandırılmıştır.
4. Veri Tabanı ve Servis Bağlantıları: Çeşitli servislerin birbirine bağlanması ve yönetilmesi çok daha basit hale gelir.
Sonuç
Docker Compose, konteyner yönetimini basitleştirir ve uygulama geliştirme süreçlerini hızlandırır. Geliştiriciler için bu araç, projenizin yapılandırmasını kolayca yönetmenizi sağlar ve tüm servisleri aynı anda çalıştırma imkanı sunar. Docker Compose'a alıştığınızda, mikroservis mimarisiyle çalışmak bir o kadar kolay ve eğlenceli hale gelecek!