Docker Compose Nedir?
Docker Compose, birden fazla Docker konteynerini tanımlamanıza ve bu konteynerleri tek bir komutla başlatmanıza olanak sağlayan bir araçtır. Birden fazla servisi (örneğin, veritabanı, web sunucusu, arka uç servisleri) bir arada çalıştırmak için, her birini ayrı ayrı başlatmak yerine, her şeyin bir arada çalışmasını sağlayabilirsiniz. Docker Compose sayesinde, karmaşık uygulamalarınızın tüm yapılandırmalarını tek bir YAML dosyasına yazabilir ve bu dosya üzerinden tüm sistemi kolayca yönetebilirsiniz.
Docker Compose Nasıl Kurulur?
Linux üzerinde Docker Compose kullanmaya başlamak oldukça basit. İşte adım adım kurulum süreci:
1. Docker’ı Kurun:
Docker Compose kullanabilmek için önce Docker’ı kurmanız gerekmektedir. Docker, konteynerlerinizi oluşturup çalıştırmanıza olanak sağlar. Eğer Docker henüz kurulu değilse, şu komutları kullanarak kurulum yapabilirsiniz:
sudo apt-get update
sudo apt-get install docker.io
2. Docker Compose’i İndirin ve Kurun:
Docker Compose, Docker’ın yanı sıra çalışır. Bu yüzden, Compose’i indirmek ve kurmak gerekmektedir. Bunun için şu adımları takip edin:
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
sudo chmod +x /usr/local/bin/docker-compose
Kurulumdan sonra, Docker Compose’in doğru şekilde kurulup kurulmadığını kontrol etmek için şu komutu kullanabilirsiniz:
docker-compose --version
Docker Compose ile Proje Başlatmak
Docker Compose kurulumunu tamamladığınızda, artık projelerinizi daha verimli bir şekilde yönetmeye hazırsınız. Docker Compose, her proje için bir `docker-compose.yml` dosyası kullanır. Bu dosya, servislerinizi, ağ yapılandırmalarınızı ve bağlı olduğunuz veritabanlarını tanımlar. Bu dosya üzerinden yapılandırmalarınızı yönetebilirsiniz.
Örnek bir `docker-compose.yml` dosyası şöyle olabilir:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Bu dosyada, iki servis tanımladık: biri `web`, diğeri ise `db` servisi. `web` servisi bir Nginx web sunucusu kullanırken, `db` servisi bir MySQL veritabanını temsil eder. Bu iki servis arasındaki bağlantı da otomatik olarak Docker tarafından sağlanacaktır. Yapılandırma dosyasını yazdıktan sonra, projeyi başlatmak için şu komutu kullanabilirsiniz:
docker-compose up
Bu komut, tüm servislerinizi başlatacak ve her şey hazır olduğunda terminalde aktif hale gelmiş olacak.
Docker Compose ile Projeleri Yönetmek
Docker Compose, sadece projelerinizi başlatmakla kalmaz, aynı zamanda yönetmenizi de kolaylaştırır. İşte bazı kullanışlı Docker Compose komutları:
- Servisleri Arka Planda Çalıştırmak:
docker-compose up -d
Bu komut, projelerinizi arka planda çalıştırarak terminali serbest bırakır.
- Servisleri Durdurmak:
docker-compose down
Bu komut, başlattığınız tüm servisleri durdurur ve konteynerleri kaldırır.
- Servis Loglarını Görüntülemek:
docker-compose logs
Bu komut, başlatılmış servislerin loglarını görüntüler, böylece hata ayıklama işlemini kolayca yapabilirsiniz.
Docker Compose Kullanmanın Faydaları
Docker Compose kullanmanın birçok avantajı vardır:
- Kolay Servis Yönetimi: Tüm projelerinizin yapılandırmalarını tek bir dosya üzerinden yönetebilirsiniz. Bu da projeler arasında geçişi çok kolay hale getirir.
- Taşınabilirlik: Docker Compose, projelerinizi aynı ortamda çalışan herhangi bir makinede çalıştırabilir. Projenizin yapılandırmasını bir `docker-compose.yml` dosyası olarak dışa aktarabilir ve başka bir sistemde tekrar kullanabilirsiniz.
- Hızlı Başlatma: Docker Compose ile servislerinizi tek bir komutla başlatıp çalıştırabilirsiniz. Karmaşık sistemleri hızlıca kurabilir ve test edebilirsiniz.
Sonuç
Docker Compose, Linux üzerinde çoklu servisleri yönetmek için son derece güçlü bir araçtır. Bu basit ama etkili araç sayesinde, projelerinizi çok daha verimli bir şekilde yönetebilir ve geliştirme sürecini hızlandırabilirsiniz. Docker Compose ile ilgili öğrendikleriniz, projelerinizin daha stabil, taşınabilir ve yönetilebilir olmasını sağlayacaktır. Şimdi, Docker Compose ile projelerinizi başlatmaya ve yönetmeye hazırsınız!