💾 Volume'ler
Volume'ler: Container'ın dosya sistemi, kiralık toplantı odasındaki beyaz tahtadır: rezervasyonun bittiği anda (docker rm) temizlik ekibi onu siler.
Container'ın dosya sistemi, kiralık toplantı odasındaki beyaz tahtadır: rezervasyonun bittiği anda (docker rm) temizlik ekibi onu siler. Volume ise odadan çıkarken yanına aldığın klasördür — her toplantıdan sağ çıkar. Ama dur — container'lar madem 'kullan-at' olacaktı, kalıcılığa neden ihtiyaç var? Çünkü BAZI state kirlilik değil, ürünün ta kendisidir: test raporları, hata ekran görüntüleri, demo için doldurduğun veritabanı verisi. Java'da da aynı ayrım vardır — heap'teki nesneler JVM kapanınca yok olur, önemli olanı tam da bu yüzden diske serialize edersin. QA için bu ayrım günlük bir tuzaktır: Selenium suite'ini rapor klasörü için volume mount etmeden container'da koşturursan, kırmızı biten pipeline'dan elinde ne HTML rapor ne de hata screenshot'ı kalır — kanıt, container'la birlikte ölmüştür.
Volume Komutları (Kalıcı Depolama)
Adlandırılmış volume'ler — oluştur, listele, incele, sil
Bir docker volume Nerede Fiziksel Olarak Yaşar?
docker volume create, Docker'ın kendi…
`docker volume create test-data`, Docker'ın KENDİ yönettiği disk alanında (host makinede, ama container'ın DIŞINDA) yeni bir depolama alanı AYIRIR — henüz HİÇBİR container'a bağlı DEĞİLDİR.
docker volume ls ve inspect, o…
`docker volume ls` ve `docker volume inspect`, o alanın VAR OLDUĞUNU ve GERÇEK disk yolunu (host'taki fiziksel konumu) GÖSTERİR — container SİLİNSE bile bu veri ORADA kalır.
docker volume rm SADECE HİÇBİR…
`docker volume rm` SADECE o volume'ü kullanan HİÇBİR container yoksa çalışır — aksi halde Docker "volume is in use" diyerek veriyi YANLIŞLIKLA silmeni ENGELLER.
Kalıcı bir test veritabanı volume'ünün yaşam döngüsünü doğru sıraya diz.
Adlandırılmış volume'ü oluştur (docker volume create)
Container'ı bu volume'ü mount ederek çalıştır (-v)
Container durdurulup silinse bile veri volume'de kalır