Docker Compose En İyi Uygulamaları: Çoklu Konteyner Uygulamaları
Docker Compose, çoklu konteyner uygulamalarını tanımlamak ve çalıştırmak için güçlü bir araçtır. Bu rehberde, Compose dosyalarınızı optimize etmenin en iyi uygulamalarını inceleyeceğiz.
1. Ortam Değişkenlerini Yönetin
# docker-compose.yml
services:
app:
image: myapp:latest
env_file:
- .env
environment:
- NODE_ENV=production
2. Named Volumes Kullanın
services:
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
3. Networks ile İzolasyon Sağlayın
services:
frontend:
networks:
- frontend
backend:
networks:
- frontend
- backend
db:
networks:
- backend
networks:
frontend:
backend:
4. Depends_on ve Healthcheck Kullanın
services:
app:
depends_on:
db:
condition: service_healthy
db:
image: postgres:15
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
5. Ortam Bazlı Override Dosyaları
# docker-compose.yml (base)
# docker-compose.override.yml (development)
# docker-compose.prod.yml (production)
docker compose -f docker-compose.yml -f docker-compose.prod.yml up
6. Resource Limits Belirleyin
services:
app:
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
7. Restart Policy Tanımlayın
services:
app:
restart: unless-stopped
Sonuç
Docker Compose, yerel geliştirmeden production'a kadar çoklu konteyner uygulamalarını yönetmek için vazgeçilmez bir araçtır. Bu en iyi uygulamaları takip ederek daha güvenilir ve yönetilebilir yapılar oluşturabilirsiniz.