Gdzie naprawdę kryją się gigabajty
Docker Desktop na WSL2 trzyma wszystko — obrazy, kontenery, wolumeny, cache buildów — w specjalnych dystrybucjach WSL, z których każda leży na C: jako jeden dynamiczny plik VHDX. Każdy pull dokłada warstwy, każdy build — cache, ale usunięcie czegokolwiek zwalnia miejsce tylko wewnątrz linuksowego systemu plików: plik po stronie hosta zostaje na poziomie rekordowym. Własne dystrybucje Ubuntu czy Debian powtarzają ten sam trik ze swoim ext4.vhdx, a w polowaniu na „grube foldery” nic z tego nie widać, bo dla Windowsa to kilka nieprzejrzystych plików.
- docker-desktop-data (starszy Docker) albo docker_data.vhdx (nowszy): główny pożeracz na 30–80 GB w %LOCALAPPDATA%\Docker\wsl — obrazy, kontenery, wolumeny, cache buildów
- docker-desktop: mniejsza dystrybucja systemowa, w której kręci się sam silnik Dockera
- Twoje własne dystrybucje WSL2: każda ze swoim ext4.vhdx w %LOCALAPPDATA%\Packages\...\LocalState
- Cache buildów: docker builder trzyma warstwy pośrednie nawet po usunięciu finalnego obrazu
- Wiszące obrazy i zatrzymane kontenery: osierocone warstwy po przerwanych buildach i pullach
- Anonimowe wolumeny: po cichu tworzone przy każdym buildu przez compose, przeżywają nawet docker image prune
Najpierw porządki w środku — zagęszczanie brudnego dysku to strata czasu
Kompaktowanie VHDX wypchanego martwymi obrazami daje tylko mniejszy plik, który za tydzień znów urośnie, więc kolejność działań ma znaczenie. Zacznij wewnątrz: docker system df pokazuje, ile realnie zajmują obrazy, kontenery, wolumeny i cache — a te liczby zwykle zaskakują. docker system prune -a usuwa nieużywane obrazy i zatrzymane kontenery, --volumes dodaje osierocone wolumeny — upewnij się, że nie kasujesz danych bazodanowych, na których ci zależy. Następnie docker builder prune czyści cache buildów, tak lubiany przez powtarzane przebudowy; dopiero gdy docker system df pokazuje liczbę, którą akceptujesz, warto ruszać plik na hoście.
Potem zmniejsz dysk: trzy obsługiwane sposoby
Najpierw wsl --shutdown, bo inaczej plik jest zablokowany przez działające kontenery i dystrybucje. Na świeższych buildach WSL polecenie wsl --manage <dystrybucja> --set-sparse true oznacza VHDX jako sparse i Windows może odebrać wolne bloki; na starszych konfiguracjach niezawodna droga to eksport i import — wsl --export do .tar, wsl --unregister, wsl --import do świeżego folderu — co przebudowuje plik pod faktyczny rozmiar danych. Docker Desktop potrafi też przenieść cały obraz dysku na inny dysk w Settings > Resources > Advanced i sam migruje dane — uczciwe rozwiązanie, gdy C: jest po prostu za mały do twojej pracy. A skoro już tam jesteś, ogranicz wzrost: na tej samej stronie ustawień jest limit rozmiaru dysku, a comiesięczny nawyk sprawdzania docker system df utrzyma cię w ryzach.
Pytania i odpowiedzi
Dlaczego Docker Desktop zajmuje tyle miejsca na dysku?
Docker trzyma wszystkie obrazy, warstwy, wolumeny i cache buildów w dynamicznym VHDX, który rośnie na żądanie i sam się nie kurczy. Zerknij na rozkład przez docker system df, wyczyść zbędne, a potem skompaktuj lub wyeksportuj i zaimportuj dysk.
Jak zmniejszyć plik VHDX Dockera w WSL2?
Najpierw wsl --shutdown, potem oznacz dysk jako sparse poleceniem wsl --manage <dystrybucja> --set-sparse true albo wyeksportuj dystrybucję do .tar, wyrejestruj ją i zaimportuj z powrotem — świeży VHDX dopasuje się do realnego rozmiaru danych.
Sprawdź warunki przed zakupem
Porównaj czas licencji i liczbę urządzeń. Każdy płatny plan odblokowuje ten sam zestaw narzędzi PRO.
Przeczytaj także
Napisz do nas: [email protected]