Docker Compose ne işe yarar? Basit bir örnekle açıklayın.
Cevap
Docker Compose, birden çok container'dan oluşan bir uygulamayı tek bir YAML dosyasıyla tanımlayıp tek komutla ayağa kaldırmayı sağlar. Özellikle lokal geliştirme ve test ortamlarında kullanılır.
# compose.yaml
services:
api:
build: .
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://app:secret@db:5432/app
REDIS_URL: redis://cache:6379
depends_on:
db:
condition: service_healthy
volumes:
- ./src:/app/src # kod değişikliği anında yansısın
db:
image: postgres:16
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
retries: 5
cache:
image: redis:7
volumes:
pgdata:Temel komutlar
docker compose up -d: tüm servisleri arka planda başlatırdocker compose logs -f api: logları izlerdocker compose exec db psql -U app: çalışan container'da komut çalıştırırdocker compose down: durdurur ve siler (-vile volume'ları da siler)
Önemli noktalar
- Compose tüm servisler için ortak bir ağ kurar; servisler birbirine servis adıyla erişir (
db:5432). Container içindenlocalhostkendi container'ını gösterir. depends_ontek başına yalnızca başlama sırasını belirler, servisin hazır olmasını beklemez. Hazır olmayı beklemek içinhealthcheck+condition: service_healthygerekir.- Adlandırılmış volume (
pgdata) container silinse de veriyi korur.
Production'da çok sunuculu orkestrasyon için genellikle Kubernetes veya yönetilen servisler (ECS, Cloud Run) tercih edilir.
İlgili Docker & DevOps soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.