Gigabaytların gerçekte saklandığı yer
WSL2 üzerindeki Docker Desktop her şeyi — imajları, kapsayıcıları, birimleri, derleme önbelleğini — özel WSL dağıtımlarında tutar ve her biri C:'te tek bir dinamik VHDX dosyası olarak yatar. Her pull katman ekler, her derleme önbellek; ama bunlardan birini silmek yalnızca Linux dosya sistemi içinde yer açar: ana makinedeki dosya zirve seviyesinde kalır. Kendi Ubuntu veya Debian dağıtımınız kendi ext4.vhdx'iyle aynı numarayı yapar ve bunların hiçbiri “kalın klasörler” avında görünmez, çünkü Windows'a göre bunlar birkaç opak dosyadan ibarettir.
- docker-desktop-data (eski Docker) veya docker_data.vhdx (yenisi): %LOCALAPPDATA%\Docker\wsl altındaki ana suçlu, 30–80 GB — imajlar, kapsayıcılar, birimler, derleme önbelleği
- docker-desktop: Docker motorunun kendisini çalıştıran, daha küçük sistem dağıtımı
- Kendi WSL2 dağıtımlarınız: her birinin %LOCALAPPDATA%\Packages\...\LocalState altında bir ext4.vhdx'i var
- Derleme önbelleği: docker builder, final imajı sildikten sonra bile ara katmanları tutar
- Sallanan imajlar ve durdurulmuş kapsayıcılar: yarım kalan derleme ve indirmelerden artakalan sahipsiz katmanlar
- Anonim birimler: compose dosyaları her derlemede sessizce oluşturur, docker image prune'a bile dayanır
Önce içeriyi temizleyin — kirli diski küçültmek boşa emektir
Ölü imajlarla dolu bir VHDX'i sıkıştırmak, sadece bir hafta sonra yeniden büyüyecek daha küçük bir dosya üretir; o yüzden işlem sırası önemlidir. İçeriden başlayın: docker system df, imajların, kapsayıcıların, birimlerin ve önbelleğin gerçekte ne tuttuğunu gösterir ve rakamlar genellikle şaşırtır. docker system prune -a kullanılmayan imajları ve durdurulmuş kapsayıcıları kaldırır, --volumes sahipsiz birimleri ekler — gerçekten istediğiniz veritabanı verisini silmediğinizden emin olun. docker builder prune ise tekrarlanan derlemelerin şişirdiği derleme önbelleğini temizler; ana makinedeki dosyaya dokunmak, ancak docker system df kabul edebileceğiniz bir rakam gösterdiğinde anlamlıdır.
Sonra diski küçültün: desteklenen üç yol
Önce wsl --shutdown; yoksa dosya çalışan kapsayıcılar ve dağıtımlar tarafından kilitlenir. Güncel WSL derlemelerinde wsl --manage <dağıtım> --set-sparse true komutu VHDX'i seyrek olarak işaretler ve Windows boş blokları geri alabilir; eski kurulumlarda güvenilir yol dışa aktarma ve içe aktarmadır — wsl --export ile .tar'a, wsl --unregister, wsl --import ile taze bir klasöre — ve dosya gerçek veri boyutunda yeniden kurulur. Docker Desktop ayrıca Settings > Resources > Advanced altında tüm disk imajını başka bir sürücüye taşıyabilir ve veriyi sizin için taşır — C: işiniz için basitçe fazla küçükse dürüst çözüm budur. Oradayken büyümeye de bir sınır koyun: aynı ayar sayfasında bir disk boyutu sınırı vardır ve aylık docker system df alışkanlığı sizi sınırın altında tutar.
Sorular ve yanıtlar
Docker Desktop neden bu kadar çok disk alanı kaplıyor?
Docker, her imajı, katmanı, birimi ve derleme önbelleği girdisini talep üzerine büyüyen ve kendi kendine asla küçülmeyen dinamik bir VHDX'te tutar. Dağılımı docker system df ile görün, gereksizi temizleyin, sonra diski sıkıştırın veya dışa/içe aktarın.
WSL2'deki Docker VHDX dosyası nasıl küçültülür?
Önce wsl --shutdown çalıştırın, sonra wsl --manage <dağıtım> --set-sparse true ile diski seyrek yapın ya da dağıtımı .tar'a aktarıp kaydını silin ve geri içe aktarın — taze VHDX gerçek veri boyutunuzla eşleşir.
Satın almadan önce lisans kapsamını öğrenin.
Tek seferlik 30 dakikalık deneme temel araçları kapsar. PRO özellikleri ücretli lisans etkinleştirilene kadar kilitlidir.
Bunları da okuyun
Bize yazın: [email protected]