Docker Nedir ve Docker Compose Neden Kullanılır?
Hayatın her alanında pratik çözümler arayan bir yazılım geliştiricisi olarak, bir uygulama geliştirdiğinizde o uygulamanın her bir parçasını yönetmek bazen başlı başına bir iş haline gelebilir. İster veri tabanları, ister backend ya da frontend servisleri olsun, hepsinin doğru bir şekilde çalışabilmesi için farklı konfigürasyonlar yapmanız gerekebilir. İşte tam bu noktada Docker Compose devreye giriyor.
Docker, uygulamalarınızı konteynerler içinde izole ederek çalıştırmanızı sağlayan bir platform. Her bir konteyner, uygulamanızın belirli bir bileşenini çalıştırır. Ancak, her bileşeni tek tek çalıştırmak ve bunları birbirleriyle uyumlu hale getirmek zaman alıcı ve karmaşık olabilir. Docker Compose, bu karmaşayı ortadan kaldırır ve uygulamanızın tüm bileşenlerini bir arada yönetmenize olanak tanır.
Docker Compose Kurulumu ve Başlangıç
Linux üzerinde Docker Compose kullanmaya başlamak için öncelikle Docker’ın sisteminizde kurulu olması gerekiyor. Eğer Docker’ınız yoksa, aşağıdaki adımları izleyerek kurulum yapabilirsiniz.
1. Docker'ı Yüklemek:
Eğer Docker'ı yüklemediyseniz, terminal üzerinden şu komutları kullanarak yükleme işlemini başlatabilirsiniz:
sudo apt-get update
sudo apt-get install docker.io2. Docker Compose Yüklemek:
Docker Compose, Docker ile aynı şekilde yönetilen bir araçtır, bu nedenle önce Docker’ı kurmanız gerekiyor. Docker Compose’ı yüklemek için aşağıdaki komutları takip edebilirsiniz:
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-composeBu komutlar, Docker Compose’ın en son sürümünü indirir ve çalıştırılabilir hale getirir.
3. Kurulumu Kontrol Etmek:
Kurulum işlemi tamamlandıktan sonra, Docker Compose’ın doğru bir şekilde kurulduğundan emin olmak için şu komutu kullanabilirsiniz:
docker-compose --versionDocker Compose Dosyası Oluşturmak
Docker Compose, bir YAML dosyası olan `docker-compose.yml` dosyasını kullanarak uygulamanızın tüm bileşenlerini tanımlar. Bu dosya, uygulamanızın konteynerlerinin nasıl yapılandırılacağına dair talimatları içerir.
Şimdi, basit bir örnek üzerinden ilerleyelim. Diyelim ki bir web uygulaması geliştirdiniz ve bu uygulama için bir veritabanına ihtiyacınız var. Docker Compose ile bu iki bileşeni tek bir dosya ile yöneteceğiz.
Öncelikle bir proje dizini oluşturun ve içine bir `docker-compose.yml` dosyası ekleyin:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: exampleYukarıdaki örnekte, iki servis tanımladık: `web` ve `db`. `web` servisi, Nginx görüntüsünü kullanacak ve 8080 portunu 80 portuna yönlendirecek. `db` servisi ise PostgreSQL kullanacak ve veritabanının şifresini `example` olarak belirleyecek.
Docker Compose ile Uygulamayı Çalıştırmak
Artık `docker-compose.yml` dosyanızı oluşturduğunuza göre, uygulamanızı başlatmak için terminalde şu komutu kullanabilirsiniz:
docker-compose upBu komut, belirtilen servisleri (web ve db) başlatacak ve Nginx web sunucusuna erişmek için tarayıcınızda `localhost:8080` adresini ziyaret edebilirsiniz.
Not: Eğer servisi arka planda çalıştırmak isterseniz, `-d` parametresi ile çalıştırabilirsiniz:
docker-compose up -dDocker Compose ile Çalışan Servisleri Durdurmak
Uygulamanızı durdurmak için aşağıdaki komutu kullanabilirsiniz:
docker-compose downBu komut, Docker Compose tarafından başlatılan tüm konteynerleri durdurur ve uygulamanızı temizler.
Docker Compose ile Veritabanı Yedekleme ve Geri Yükleme
Docker Compose, sadece uygulamanızı yönetmekle kalmaz, aynı zamanda veritabanınızı da yönetir. Diyelim ki PostgreSQL veritabanınızı yedeklemek istiyorsunuz. Bunun için şu komutu kullanabilirsiniz:
docker-compose exec db pg_dump -U postgres > backup.sqlBu komut, `db` konteynerinde çalışan PostgreSQL veritabanını yedekler ve yedeği `backup.sql` dosyasına kaydeder.
Veritabanını geri yüklemek için ise şu komutu kullanabilirsiniz:
docker-compose exec -T db psql -U postgres < backup.sqlSonuç: Docker Compose ile Kolay Yönetim
Docker Compose, uygulamanızın tüm bileşenlerini tek bir komutla başlatmak, durdurmak ve yönetmek için mükemmel bir araçtır. Hem geliştirici hem de sistem yöneticisi olarak işinizi oldukça kolaylaştırır. Linux üzerinde Docker Compose kullanarak uygulamanızı başlatmak, veritabanınızı yedeklemek veya bileşenleri yönetmek her zamankinden daha kolay!
Artık her şey bir arada ve tüm servisleriniz Docker Compose sayesinde uyum içinde çalışıyor. Projeniz büyüdükçe, bu tür araçlar size zaman kazandıracak ve uygulamanızın bakımını daha yönetilebilir hale getirecektir.