Docker Compose, birden fazla Docker konteynerinin bir arada yönetilmesine olanak tanıyan bir araçtır. Uygulama bileşenlerini tek bir dosya içinde tanımlama imkanı sunarak, birden fazla servisin koordinasyonunu kolaylaştırır. Aşağıda Docker Compose kurulumu ile ilgili detaylı bilgiler yer almaktadır.
Docker ve Docker Compose Gereksinimleri
Docker Compose’u kullanabilmek için öncelikle bilgisayarda Docker’ın kurulu olması gerekmektedir. Docker, konteynerleşmiş uygulamaların oluşturulması ve yönetilmesi için gerekli olan bir platformdur. Docker Compose ise, Docker kullanıcıları için ek bir araçtır. Docker Compose’un en son sürümünü kullanmak için sistemde en az Docker CE (Community Edition) versiyonu 1.13 ve üstü yüklenmiş olmalıdır. İşletim sistemi olarak Linux, Windows veya MacOS üzerinde çalıştırılabilir.
Docker Kurulumu
1. Docker’ın İndirilmesi: Öncelikle, Docker’ın resmi web sitesine gidilerek ilgili işletim sistemi için uygun olan Docker sürümü indirilir.
2. Kurulum: İndirilen dosya açıldıktan sonra, ekran üzerinde yer alan adımlar takip edilerek kurulum tamamlanır. Linux kullanıcıları için terminal kullanarak kurulum yapılması tavsiye edilmektedir. Örneğin, Ubuntu üzerinde aşağıdaki komutlar kullanılabilir:
“`bash
sudo apt update
sudo apt install docker.io
“`
3. Docker Servisinin Başlatılması: Kurulum tamamlandıktan sonra Docker servisi başlatılmalıdır.
“`bash
sudo systemctl start docker
sudo systemctl enable docker
“`
4. Kurulumun Doğrulanması: Kurulumun başarılı olup olmadığını kontrol etmek için aşağıdaki komut ile Docker versiyonu sorgulanabilir.
“`bash
docker –version
“`
Docker Compose Kurulumu
Docker Compose için kurulum adımları aşağıda belirtilmiştir.
1. Compose İndirme: Docker Compose, çeşitli işletim sistemleri için farklı indirme yöntemlerine sahiptir. En güncel sürüm için [Docker Compose GitHub Sayfası](https://github.com/docker/compose/releases) ziyaret edilmelidir. Aşağıdaki komut, Docker Compose’un en son sürümünü indirmek için kullanılabilir:
“`bash
sudo curl -L “https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
“`
2. İzinlerin Ayarlanması: İndirilen dosyanın çalıştırılabilir hale getirilmesi gerekmektedir. Bunun için aşağıdaki komut kullanılabilir:
“`bash
sudo chmod +x /usr/local/bin/docker-compose
“`
3. Kurulumun Doğrulanması: Docker Compose’un doğru kurulduğunu kontrol etmek için sürüm numarası sorgulanabilir:
“`bash
docker-compose –version
“`
Docker Compose Dosya Yapısı
Docker Compose ile çalışırken, bir `docker-compose.yml` dosyası oluşturulması gerekmektedir. Bu dosya, uygulamanın hangi hizmetlerden oluştuğunu tanımlar. Aşağıda temel bir `docker-compose.yml` dosyası örneği bulunmaktadır:
“`yaml
version: ‘3’
services:
web:
image: nginx
ports:
– “80:80”
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
“`
Yukarıdaki dosyada, `web` servisi için Nginx kullanılırken, `db` servisi için PostgreSQL kullanılmıştır. Her hizmet, kendine ait bir yapılandırmaya sahiptir.
Docker Compose Komutları
Docker Compose ile yönetilen uygulamalar için bazı temel komutlar bulunmaktadır:
– Hizmetleri başlatmak için:
“`bash
docker-compose up
“`
– Arka planda başlatmak için:
“`bash
docker-compose up -d
“`
– Hizmet durdurmak için:
“`bash
docker-compose stop
“`
– Hizmetleri durdurup silmek için:
“`bash
docker-compose down
“`
Örnek Uygulama
Docker Compose ile basit bir uygulama oluşturmak için, yukarıda tanımlanan yml dosyası kullanılarak hizmetler başlatılabilir. Bu, hem web hem de veritabanı servisini çalıştıracaktır.
“`bash
docker-compose up
“`
Bu komut çalıştırıldığında, her iki hizmet de başlatılacak ve portlar üzerinden erişim sağlanabilecektir. Nginx sunucusu üzerinden web sayfasına ulaşılabilirken, PostgreSQL veritabanı hazır hale gelecektir.
Sorun Giderme
Kurulum sırasında karşılaşılabilecek sorunlar için, hata mesajlarını dikkatlice incelemek önemlidir. Docker ve Docker Compose’un düzgün çalıştığından emin olmak için gerekli izinlerin verilmiş olması, sürüm uyumsuzluklarının kontrol edilmesi ve gerekli portların açık olduğunun doğrulanması gereklidir. Web tabanlı dokümantasyonlar ve topluluk forumları, sorun giderme sürecinde faydalı olabilir.