03-dev-disk · Kullanım Kılavuzu

Bash GNU Make Docker Snap systemd Read-Only Destructive

Amaç

Geliştirme makinesinde sessizce biriken çöpü önce ölçer, sonra isterseniz temizler: Docker build cache, sarkan imajlar, eski snap sürümleri, journald kayıtları, APT önbelleği ve çöp kutusu.

Docker’la ve kind/Multipass gibi araçlarla çalışan bir makinede bu birikim hızlıdır — tipik olarak birkaç GB.

Güvenlik ilkesi

Bu modül, yıkıcı olabilecek şeyleri varsayılan olarak yapmaz:

Kategori Davranış Neden
Build cache, sarkan imajlar Silinir Yeniden üretilir, kayıp yok
APT önbelleği, journald, eski snap’ler, çöp kutusu Silinir Yeniden indirilir / eski kayıt
Docker volume’ları Asla silinmez — yalnızca raporlanır İçinde veritabanı/uygulama verisi olabilir
Konteynerler (durmuş olanlar dahil) Dokunulmaz Sizin işinize yarıyor olabilir
Kullanılmayan imajlar Yalnızca disk-clean-all ile Yerel build’ler yeniden build gerektirir

Sarkan volume’lar için script size komutu gösterir ama silmeyi size bırakırdocker volume prune‘un geri dönüşü yoktur ve durmuş bir veritabanı konteynerinin verisi orada olabilir.

Make hedefleri

Hedef Açıklama
make disk-report Neyin ne kadar yer kapladığını gösterir, hiçbir şey silmez
make disk-clean Güvenli temizlik (yeniden üretilebilir olanlar)
make disk-clean-all Yukarıdakiler + kullanılmayan tüm Docker imajları

Parametreler

Değişken Varsayılan Anlamı
DRY DRY=1: hiçbir şey silmez, ne yapılacağını komutlarıyla gösterir
YES YES=1: onay sorusunu atlar
DISK_JOURNAL_KEEP 7d journald’de saklanacak süre
DISK_SNAP_RETAIN 2 snap’te saklanacak sürüm sayısı
DISK_NO_SUDO DISK_NO_SUDO=1: sudo gerektiren adımları (APT, snap, journald) atlar

Çalıştırma

1. Önce ölç

make disk-report
  KATEGORI                   KAZANC       NOT
──────────────────────────────────────────────────────────────────────────────
  Docker build cache         3.6 GiB      guvenli - yeniden uretilir
  Docker sarkan imajlar      0 MiB        guvenli - etiketsiz artiklar
  journald kayitlari         347 MiB      7d oncesi silinir
  APT paket onbellegi        10 MiB       guvenli - yeniden indirilir
  Eski snap surumleri        176 MiB      guvenli - son 2 surum kalir
  Cop kutusu                 1 MiB        guvenli
──────────────────────────────────────────────────────────────────────────────
  TOPLAM                     4.1 GiB       guvenli temizlik

  Ayri degerlendirilenler
──────────────────────────────────────────────────────────────────────────────
  Kullanilmayan imajlar      2.5 GiB      yeniden build gerekir
  Sarkan volume'lar          4.7 GiB      VERI KAYBI RISKI - silinmez

2. Ne olacağını gör (kuru çalışma)

make disk-clean DRY=1

Tek bir şey silmeden, çalıştırılacak komutları tek tek listeler:

▸ Docker
  [kuru] Build cache temizleniyor
    docker builder prune -f
  [kuru] Sarkan imajlar temizleniyor
    docker image prune -f

▸ Sistem (sudo gerekir)
  [kuru] APT onbellegi temizleniyor
    sudo apt-get clean
  [kuru] journald 7d oncesine kadar kirpiliyor
    sudo journalctl --vacuum-time=7d
  [kuru] Eski snap siliniyor: spotify (rev 97)
    sudo snap remove spotify --revision=97

3. Temizle

make disk-clean

Önce raporu gösterir, onay ister, sonra adım adım temizler ve sonunda raporu yeniden basar — böylece ne kadar yer kazandığınızı görürsünüz.

sudo gerektiren adımlar (APT, journald, snap) için parola sorulur. İstemiyorsanız:

make disk-clean DISK_NO_SUDO=1

Geniş temizlik

make disk-clean-all

Ek olarak kullanılmayan tüm Docker imajlarını siler. Bu, yerel olarak build ettiğiniz imajları da kapsar (kendi projeleriniz); onları yeniden build etmeniz gerekir. Internet’ten gelen imajlar yeniden indirilir.

kind kullanıyorsanız kindest/node imajı da silinebilir — bu, sonraki make kind-up çağrısını birkaç dakika yavaşlatır (imaj yeniden indirilir).

Sarkan volume’lar

Rapor bunları gösterir ama silmez. Karar vermeden önce içeriklerine bakın:

docker volume ls -f dangling=true
docker volume inspect <ad> | head -20

Örneğin durmuş bir postgres konteynerine ait volume, veritabanınızı barındırıyor olabilir. Emin olduktan sonra:

docker volume prune        # geri dönüşü yoktur

Notlar

  • disk-report tamamen salt okunurdur; istediğiniz zaman çalıştırabilirsiniz.
  • Temizlik sonrası tekrar rapor basılır; “önce/sonra” farkını orada görürsünüz.
  • Build cache silmek sonraki docker build işlemlerini bir kereliğine yavaşlatır (katmanlar yeniden üretilir), ama kalıcı bir kayıp değildir.