Docker Nedir?
Docker, uygulamaları container adı verilen izole ortamlarda çalıştırmanızı sağlayan bir platformdur. "Benim bilgisayarımda çalışıyor" sorununu ortadan kaldırır.
Docker sayesinde geliştirme, test ve production ortamları arasında tutarlılık sağlanır.
Container vs Virtual Machine
| Özellik | Container | Virtual Machine |
|---|---|---|
| Başlatma süresi | Saniyeler | Dakikalar |
| Boyut | MB düzeyinde | GB düzeyinde |
| Kaynak kullanımı | Düşük | Yüksek |
| İzolasyon | Process seviyesi | Tam OS izolasyonu |
| Taşınabilirlik | Çok yüksek | Orta |
Temel Kavramlar
| Kavram | Açıklama |
|---|---|
| Image | Uygulamanın şablonu, read-only |
| Container | Image'dan oluşturulan çalışan örnek |
| Dockerfile | Image oluşturmak için talimatlar |
| Registry | Image deposu (Docker Hub) |
| Volume | Kalıcı veri depolama |
| Network | Container arası iletişim |
Docker Avantajları
- Tutarlılık: Her yerde aynı şekilde çalışır
- Hız: Saniyeler içinde başlar
- İzolasyon: Uygulamalar birbirini etkilemez
- Verimlilik: Sistem kaynaklarını verimli kullanır
- Ölçeklenebilirlik: Kolay yatay ölçekleme
- DevOps: CI/CD pipeline'larına kolay entegrasyon
Kullanım Alanları
- Mikroservis mimarisi
- Geliştirme ortamları
- CI/CD pipeline'ları
- Uygulama dağıtımı
- Test ortamları
- Legacy uygulama modernizasyonu