Self-hosting dünyasında, Docker Compose, çok konteynerli Docker uygulamalarını kolayca yönetmek isteyen geliştiriciler için çok değerli bir araçtır. Bu rehber, kurulum sürecinin tamamını anlatacak ve seçtiğiniz VPS sağlayıcısında uygulamalarınızı minimum sorunla dağıtmanızı sağlayacaktır.
Docker Compose nedir?
Docker Compose, çok konteynerli uygulamaları tanımlama ve çalıştırma sürecini basitleştiren bir komut satırı aracıdır. Uygulamanızın servislerini, ağlarını ve hacimlerini yapılandırmak için basit bir YAML dosyası kullanır ve tek bir komutla karmaşık uygulamaları dağıtmanıza olanak tanır. Bu dağıtım sürecinin kolaylaştırılması, VPS üzerinde aynı anda birden fazla servis çalıştıranlar için özellikle faydalıdır.
Gereksinimler
Docker Compose’a başlamadan önce aşağıdakilere sahip olmalısınız:
- VPS Sağlayıcı: Contabo VPS, Hetzner Cloud, DigitalOcean, Vultr veya Linode gibi seçenekler arasından seçim yapın. Fiyatlar EUR 4.15/ay’dan başlar.
- Docker Kurulu Olmalı: VPS’nize Docker kurulu olmalıdır. Kurulu değilse, Docker’ın resmi kurulum kılavuzunu izleyerek kurabilirsiniz.
- Temel CLI Bilgisi: Komut satırı bilgisi, kurulum ve yönetim işlemlerini kolaylaştırır.
Docker Compose Kurulumu
Docker Compose’u kurmak için terminalinizde şu komutları çalıştırın:
sudo apt-get update
sudo apt-get install docker-compose
Kurulumu doğrulamak için ise:
docker-compose --version
İlk Docker Compose Dosyanızı Oluşturma
Şimdi, Docker Compose kullanarak basit bir uygulama oluşturalım. Örnek olarak Nginx ile temel bir web sunucusu kuracağız.
-
Proje Dizini Oluşturun:
mkdir myproject cd myproject -
docker-compose.ymlDosyasını Oluşturun: Tercih ettiğiniz metin düzenleyici iledocker-compose.ymldosyasını oluşturun.
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
- HTML Dizini Oluşturun:
mkdir html echo "<h1Merhaba Dünya</h1>" > html/index.html
Docker Compose’u Çalıştırmak
Uygulamayı başlatmak için aşağıdaki komutu çalıştırın:
docker-compose up -d
Bu komut, web servisinizi arka planda başlatacaktır. Logları görmek için:
docker-compose logs
Servisleri durdurmak için ise:
docker-compose down
Çok Konteynerli Uygulamaları Yönetmek
Docker Compose, çok konteynerli uygulamaları yönetirken öne çıkar. Diyelim ki, docker-compose.yml dosyamıza bir veritabanı ekleyelim. Güncellenmiş örnek aşağıdaki gibidir:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Bu yapılandırma, bir Nginx web sunucusu ve bir MySQL veritabanı kurar. Docker Compose ile birden fazla servisi sorunsuz bir şekilde çalıştırabilirsiniz.
Popüler VPS Sağlayıcılarının Karşılaştırması
Self-hosting ihtiyacınıza uygun doğru VPS’yi seçmenize yardımcı olmak için, popüler sağlayıcıların karşılaştırması aşağıdaki gibidir:
| Sağlayıcı | Aylık Fiyat | CPU Çekirdeği | RAM | Depolama |
|---|---|---|---|---|
| Contabo VPS | 5.99 EUR | 2 | 4 GB | 100 GB SSD |
| Hetzner Cloud | 4.15 EUR | 1 | 2 GB | 20 GB SSD |
| DigitalOcean | 6 USD | 1 | 1 GB | 25 GB SSD |
| Vultr | 6 USD | 1 | 1 GB | 25 GB SSD |
| Linode | 5 USD | 1 | 1 GB | 25 GB SSD |
Bu sağlayıcılar farklı ihtiyaçlar ve bütçeler için uygundur. Daha geniş VPS seçenekleri için tam VPS karşılaştırmamıza göz atabilirsiniz.
Sıkça Sorulan Sorular
Docker Compose nasıl çalışır?
Docker Compose, uygulamanızın servislerini ve bunların ayarlarını (ağlar ve hacimler gibi) tanımlayan bir YAML yapılandırma dosyasını (docker-compose.yml) okuyarak çalışır. docker-compose up komutunu çalıştırdığınızda, belirtilen konteynerleri oluşturur ve birbirleriyle bağlantı kurmasını sağlar. Bu, çok konteynerli uygulamaların kolayca orchestrasyonunu yapmanıza, dağıtımı hızlandırmanıza ve güvenilirliği artırmanıza olanak tanır.
Düşük özelliklere sahip VPS üzerinde Docker Compose çalıştırabilir miyim?
Evet, Docker Compose düşük özellikli VPS’lerde de çalışabilir; ancak, performans kaynak kullanımına bağlıdır. Sınırlı kaynaklara sahip bir VPS’de (örneğin, 1 GB RAM ve 1 CPU çekirdeği ile), minimum ve verimli yapılandırmalar yapmanız önemlidir. Hafif uygulamaları tercih edin. Contabo ve Hetzner uygun fiyatlı planlar sunar ve geliştirme ile test için yeterli kaynak sağlar.
Docker Compose üretim ortamları için uygundur mu?
Kesinlikle, Docker Compose üretim ortamları için uygundur. Ancak, en iyi uygulamaları takip etmek gerekir; örneğin, servis bağımlılıklarını belirlemek ve kalıcı veri için harici hacimler kullanmak gibi. Daha büyük ölçekli orkestrasyon ihtiyaçlarınız varsa, Docker Swarm veya Kubernetes kullanabilirsiniz. Uygulamaları üretime almadan önce kapsamlı testler yapmanız, riskleri azaltır ve istikrarlı performans sağlar.
Sonuç olarak, Docker Compose, self-hosted uygulamaların yönetimini büyük ölçüde kolaylaştırır ve geliştiriciler için vazgeçilmez bir araçtır. Doğru VPS sağlayıcısı ve dikkatli yapılandırmayla, birden fazla uygulamayı konteynerleştirilmiş ortamda etkili bir şekilde çalıştırabilirsiniz.