Docker Diskinizin İçini Dolduruyor Olabilir! Kullanılmayan Verileri Güvenli Şekilde Temizleyin
Docker, yazılım geliştiren kişilerin uygulamaları birbirinden izole edilmiş ortamlarda çalıştırmasına yardımcı olur. Ancak zaman içinde kullanılmayan kapsayıcılar, eski görüntüler ve derleme önbellekleri birikerek diskte gereksiz yer kaplayabilir.
Docker, kullanılmayan nesneleri genellikle siz açıkça temizlik istemediğiniz sürece otomatik olarak silmez. Bu nedenle özellikle çok sayıda proje deneyen geliştiriciler zaman zaman disk kullanımını kontrol etmelidir. Docker Documentation
Bu rehberde amaç, Docker'ı baştan kurmak veya bütün verileri silmek değil; neyin yer kapladığını görmek ve gerçekten ihtiyaç duyulmayan verileri kontrollü şekilde temizlemek.
Önce şu kavramları öğrenin
Docker temizliği yapmadan önce birkaç terimi ayıralım:
- Görüntü (image): Bir uygulamanın çalıştırılması için kullanılan şablon.
- Kapsayıcı (container): Görüntüden oluşturulan çalışan veya durmuş uygulama ortamı.
- Birim (volume): Kapsayıcılar arasında kalıcı veri saklamak için kullanılabilen depolama alanı.
- Derleme önbelleği: Uygulama görüntüleri oluşturulurken yeniden kullanılabilen ara veriler.
En önemli ayrım şudur: Kullanılmayan bir görüntüyü silmekle veritabanı dosyalarını tutan bir birimi silmek aynı şey değildir. Birimler uygulama verilerini içerebilir ve yanlışlıkla silinmeleri veri kaybına neden olabilir. Docker, birimleri otomatik olarak kaldırma konusunda özellikle temkinli davranır. Docker Documentation
1. Docker'ın ne kadar yer kapladığını görün
Önce terminali açın. Windows'ta Docker Desktop kullanıyorsanız PowerShell veya Windows Terminal üzerinden de komutları çalıştırabilirsiniz.
Şu komutu girin:
docker system df
Bu komut Docker'ın disk kullanımına ilişkin özet bilgi verir.
Daha ayrıntılı bir görünüm için:
docker system df -v
İkinci komut, görüntüler, kapsayıcılar ve birimler gibi kaynakların kullanımını daha ayrıntılı gösterir. Docker Documentation
Bu aşamada hemen silme işlemi yapmayın. Önce hangi kaynakların yer kapladığını anlamaya çalışın.
2. Kullanılmayan görüntüleri temizleyin
Docker'ın kullanılmayan ve etiketsiz görüntülerini temizlemek için:
docker image prune
Komut, silinecek nesneler hakkında uyarı verir ve onay ister.
Daha geniş temizlik sağlayan şu komut da vardır:
docker image prune -a
Ancak dikkat: -a seçeneği, mevcut kapsayıcılarla ilişkili olmayan daha fazla görüntüyü siler. Daha sonra bu görüntülere yeniden ihtiyaç duyarsanız tekrar indirmeniz veya oluşturmanız gerekebilir. Bu nedenle ilk denemede daha sınırlı komutla başlamak daha temkinli bir yaklaşımdır. Docker Documentation
3. Kullanılmayan durmuş kapsayıcıları temizleyin
Çalışması biten bir kapsayıcı durdurulmuş olsa bile diskte yer kaplamaya devam edebilir.
Önce bütün kapsayıcıları görmek için:
docker ps -a
Listede artık ihtiyaç duymadığınız durmuş kapsayıcılar varsa bunları temizlemek için:
docker container prune
Bu komut tüm durmuş kapsayıcıları kaldırmayı teklif eder. Onay vermeden önce listenizde daha sonra incelemek veya yeniden kullanmak istediğiniz kapsayıcılar bulunmadığından emin olun. Docker Documentation
4. Derleme önbelleğini ayrı temizleyin
Büyük projelerde derleme önbelleği de yer kaplayabilir.
Yalnızca derleme önbelleğini temizlemek için:
docker buildx prune
Komut, seçili derleyicinin kullanılmayan derleme önbelleğini temizlemek için kullanılır. Birden fazla derleyici kullanıyorsanız hangi derleyicinin seçili olduğunu göz önünde bulundurun.
Önbelleği temizlemek, sonraki derlemelerin bazı adımlarının yeniden yapılmasına neden olabilir. Bu yüzden temizlikten sonra ilk derlemenin daha uzun sürmesi normal olabilir. Docker Documentation
5. Genel temizlik yapmak isterseniz
Yukarıdaki kaynakları ayrı ayrı değerlendirdikten sonra genel temizlik için şu komut kullanılabilir:
docker system prune
Docker bu komutla durmuş kapsayıcıları, kullanılmayan ağları, etiketsiz görüntüleri ve kullanılmayan derleme önbelleğini temizleyebilir. Onay ekranını okuyup işlemi kabul etmeniz gerekir. Docker Documentation
Dikkat: Bu komut da ihtiyaç duyduğunuz bazı kaynakları kaldırabilir. Önce docker system df ile disk kullanımını incelemek ve neyin silineceğini anlamak önemlidir.
6. Şu komutu ne yaptığınızı bilmeden kullanmayın
docker system prune --volumes
Bu seçenek, kullanılmayan anonim birimleri de temizliğe dahil eder. Birimler veritabanı veya uygulama verisi içeriyor olabilir. Kullanılmıyor gibi görünmeleri, içlerindeki verinin önemsiz olduğu anlamına gelmez.
Ayrıca --volumes seçeneğinin tüm isimlendirilmiş birimleri gelişigüzel sildiği düşünülmemelidir; Docker'ın varsayılan davranışı ile birimleri ayrıca temizleyen seçenekler farklıdır. Yine de birimleri silmeden önce içeriklerini ve hangi projelere ait olduklarını kontrol edin. Docker Documentation
Önerilen güvenli temizlik sırası
Günlük kullanım için şu sırayı izleyebilirsiniz:
docker system dfile disk kullanımını görün.docker ps -aile durmuş kapsayıcıları inceleyin.- Gereksiz olduğundan emin olduğunuz kapsayıcıları temizleyin.
- Kullanılmayan görüntüleri kontrollü şekilde kaldırın.
- Gerekirse derleme önbelleğini temizleyin.
- Son olarak
docker system dfkomutunu tekrar çalıştırarak sonucu karşılaştırın.
Bu yaklaşım, doğrudan bütün kaynakları silmeye çalışmaktan daha kontrollüdür.
Sonuç: Docker'ın çok yer kaplaması her zaman bir arıza anlamına gelmez. Eski projelerden kalan görüntüler, durmuş kapsayıcılar ve önbellekler zaman içinde birikebilir. Ne kadar alan kullanıldığını ölçüp yalnızca gereksiz kaynakları temizlemek en doğru başlangıçtır.
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Bir Yorum Bırakın