Docker Compose ile Çoklu Ortam Yapılandırma Kılavuzu
Docker Compose, birden fazla konteynerin birlikte çalışmasını sağlayan, uygulamanızın hizmetlerini tanımlayıp çalıştırmanızı kolaylaştıran bir araçtır. Open Source dünyasında yaygın olarak kullanılan Docker Compose, geliştirme, test ve üretim ortamlarını sorunsuz bir şekilde yönetmenizi sağlar. Bu kılavuzda, Docker Compose ile nasıl çoklu ortam yapılandırması yapabileceğinizi adım adım ele alacağız.
Docker ve Docker Compose Kurulumu
Docker Compose kullanmaya başlamadan önce, sisteminizde Docker ve Docker Compose’un kurulu olması gerekir. Aşağıda bu araçların yüklenmesine ilişkin temel adımları bulabilirsiniz.
1. Docker Kurulumu
– Linux sisteminizde Docker yüklemek için terminali açın ve aşağıdaki komutu çalıştırın:
“`bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
“`
– Mac veya Windows kullanıcıları Docker Desktop’u Docker’ın resmi web sitesinden indirip yükleyebilirler.
2. Docker Compose Kurulumu
– Docker Compose’u yüklemek için aşağıdaki komutu kullanabilirsiniz:
“`bash
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
“`
Docker ve Docker Compose yüklendikten sonra, docker –version
ve docker-compose –version
komutları ile kurulumun başarılı olup olmadığını kontrol edebilirsiniz.
Docker Compose ile Uygulama Ortamı Tanımlama
Docker Compose kullanan bir uygulama genellikle bir docker-compose.yml
dosyasında tanımlanır. Bu dosya, uygulamanızı oluşturan servisleri, ağları ve hacimleri tanımlar.
docker-compose.yml
Dosyasının Temel Yapısı
Aşağıda, üç servisten oluşan basit bir docker-compose.yml
dosyası örneği bulunmaktadır:
“`yaml
version: ‘3’
services:
web:
image: nginx:latest
ports:
– “80:80”
app:
build: ./app
volumes:
– .:/code
database:
image: postgres:alpine
environment:
POSTGRES_DB: example
POSTGRES_USER: user
POSTGRES_PASSWORD: password
“`
Hizmet Tanımlamaları
– web: NGINX tabanlı bir web sunucusu içindir ve 80 numaralı portu yerel makinanıza yönlendirir.
– app: Uygulama bileşenine özel bir yapılandırmayı ifade eder. build
dizini ile Dockerfile tanımlı olduğu yol verilir.
– database: PostgreSQL konteynerını tanımlar ve gerekli çevresel değişkenlerle yapılandırılır.
Ortam Dosyaları ile Esneklik Sağlama
Geliştirme, test ve üretim ortamları için farklı yapılandırmalara sahip olmanız gerekebilir. Bunun için, Compose dosyaları içerisinde değişik ortam dosyalarını (.env
) kullanarak esneklik sağlayabilirsiniz.
Örneğin, bir .env
dosyası aşağıdaki gibi görünebilir:
“`plaintext
POSTGRES_USER=myuser
POSTGRES_PASSWORD=secret
“`
Bu dosya, database
servisi tarafından kullanılacak olan kullanıcının ve parolanın esnek bir şekilde ayarlanmasına olanak tanır.
Ortamlar Arası Geçiş
Docker Compose, farklı ortamlar arasında kolay geçiş yapmanıza olanak tanır. Örneğin, geliştirme ortamında farklı, üretim ortamında farklı yapılandırmaları kullanabilirsiniz.
Geliştirme ve Üretim Konfigurasyonları
Geliştirme ve üretim amaçlı farklı docker-compose.override.yml
dosyaları oluşturabilirsiniz. Örneğin, geliştirirken daha çok hata ayıklama yapmanız gerektiği için farklı özellikler aktive edilebilir.
Aşağıda bir üretim ortamına yönelik Compose dosyası örneği verilmiştir:
“`yaml
version: ‘3’
services:
web:
image: nginx:latest
ports:
– “80:80”
environment:
– NGINX_ENV=production
“`
Komutu çalıştırarak, farklı ortam dosyalarıyla tanımlamalar yapabilirsiniz:
“`bash
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
“`
Bu makalede Docker Compose kullanarak çoklu ortam yapılandırma konusunu detaylandırdık. Docker Compose sayesinde uygulamalarınızı hem geliştirici olarak yerel bir ortamda hem de geniş ölçekte dağıtım için diğer sunucu çözümleriyle birlikte çalıştırabilirsiniz. Hızlı ve güvenilir bir sunucu çözümüne ihtiyacınız varsa, çekici VPS seçeneklerimizi inceleyebilirsiniz. Detaylar için sanal sunucu çözümlerimizi incelemeyi unutmayın.
Docker Compose ve çoklu ortam desteği ile ilgili her türlü sorunuz için Open Source topluluk forumlarına katılabilir veya açık kaynak kütüphanelerini araştırabilirsiniz. Her zaman en doğru güncel bilgilere ulaşarak projelerinizi başarıyla yönetebilirsiniz.