Bir hacim (volume) ile ana bilgisayardaki bir dizine basit bağlama (binding) arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Hacimler (Volumes): Hacimin yaşam döngüsü, konteynerin yaşam döngüsünden ayrıdır. Docker, hacimlerin depolanmasını ana makinede yönetir. Hacimler, Docker tarafından oluşturulur, bağlanır ve silinir ve verileri, konteyner durdurulup silinse bile korunur. Kalıcı veri depolama, veritabanları veya konteynerler arasında paylaşılan veriler için idealdir.
-
Ana makinedeki dizine doğrudan bağlamalar (Bind Mounts): Bir dizini veya dosyayı doğrudan ana makineden konteyner içindeki bir dizine veya dosyaya bağlar. Docker, veri depolamayı doğrudan yönetmez, sadece bir bağlama noktası oluşturur. Bu noktadaki konteynerin dosya sistemindeki değişiklikler, ana makinede de yansır ve tersi de geçerlidir. Bunlar şu amaçlar için kullanışlıdır:
- Geliştirme: Kaynak kodunu konteynere bağlayarak değişiklikleri anında yansıtmak.
- Yapılandırma: Konfigürasyon dosyalarını ana makineden konteynere aktarmak.
- Ana makine kaynaklarına erişim: Konteynere, ana makinedeki belirli dosya veya dizinlere erişim izni vermek.
Ana farklar:
| Özellik | Hacim (Volume) | Ana makinedeki bağlama (Bind Mount) |
|---|---|---|
| Yönetim | Docker, depolamayı tamamen yönetir | Docker sadece bağlama noktası oluşturur |
| Yaşam döngüsü | Konteynerden ayrıdır | Ana dizin/dosyanın varlığıyla sınırlıdır |
| Performans | I/O için optimize edilmiştir | Ana makinenin dosya sisteminin performansına bağlıdır |
| Taşınabilirlik | Dockerfile/Compose ile daha taşınabilir olur | Daha az taşınabilir, ana makinenin yapısına bağlıdır |
| İzolasyon | Ana makineden daha iyi izolasyon sağlar | Ana makinenin dosya sisteminden daha az izole olur |
Dockerfile'da hacim kullanımı örneği:
# Hacim kullanımı
VOLUME /app/data
Konteyner başlatılırken ana makinede bağlama kullanımı örneği:
# Dizin bağlama
docker run -v /ana/makine/yolu:/konteynerde/yol benim_görüntü
Konteyner başlatılırken hacim kullanımı örneği:
# İsimlendirilmiş hacim kullanımı
docker run -v benimhacimim:/konteynerde/yol benim_görüntü