Docker może zajmować miejsce obrazami, warstwami kontenerów, woluminami, logami i pamięcią podręczną budowania. Dlatego suma rozmiarów kilku obrazów nie wyjaśnia całego zużycia dysku. Najpierw ustal, które środowisko mierzysz, a następnie sprawdź poszczególne kategorie.
Nie zaczynaj od polecenia usuwającego wszystko, co narzędzie nazywa nieużywanym. Wolumin bez podłączonego kontenera może nadal zawierać ważną bazę danych. „Możliwe do odzyskania” oznacza kryterium techniczne, a nie ocenę wartości danych.
Upewnij się, że pytasz właściwy silnik
Jeżeli korzystasz z kilku środowisk, sprawdź kontekst i informacje o serwerze:
docker context show
docker info
Kontekst, zmienne środowiskowe i jawne parametry połączenia mogą kierować polecenia do różnych silników. Odczytaj rzeczywiste informacje zwracane przez serwer, zanim powiążesz wynik z lokalnym dyskiem. Polecenie wykonywane na laptopie może mierzyć zdalny serwer.
Docker Desktop korzysta z własnego środowiska i jego dysku wirtualnego. W Linuksie możesz mieć równocześnie osobny Docker Engine i Desktop. Nie zakładaj, że wszystkie dane znajdują się w jednym katalogu ani że użycie sudo pokazuje to samo środowisko co konto użytkownika.
Zacznij od zestawienia kategorii
docker system df
docker system df -v
Pierwsze polecenie pokazuje podsumowanie. Wersja szczegółowa pomaga znaleźć większe obrazy, kontenery i woluminy. Sprawdź rozmiar oraz część oznaczoną jako możliwa do zwolnienia, ale nie traktuj tego wyniku jako listy rzeczy do automatycznego usunięcia.
Obrazy współdzielą warstwy. Zsumowanie wszystkich wartości SIZE może więc wielokrotnie policzyć te same dane. Pola SHARED SIZE i UNIQUE SIZE pomagają rozróżnić wspólną zawartość od danych przypisanych wyłącznie do danego obrazu. Usunięcie jednego obrazu nie musi zwolnić jego pełnego deklarowanego rozmiaru.
Porównuj wyniki przed zmianą i po niej w tym samym środowisku. Zapisz podsumowanie, zanim rozpoczniesz porządki; przy wielu projektach łatwo później pomylić efekt usunięcia cache z usunięciem danych aplikacji.
Duży kontener nie zawsze ma duży wolumin
docker ps -a --size
Opcja -a uwzględnia także zatrzymane kontenery, a --size pokazuje rozmiary związane z ich warstwami. Rozmiar zapisywalnej warstwy nie jest pełnym rachunkiem wszystkich danych aplikacji. Montowane woluminy, pliki na hoście i logi wymagają osobnego sprawdzenia.
Jeżeli warstwa kontenera rośnie, ustal, co aplikacja zapisuje poza przewidzianym trwałym magazynem: cache, pliki tymczasowe, eksporty czy bazę. Usunięcie kontenera usuwa także jego własną zapisywalną warstwę. Nie traktuj tego jako bezpiecznej metody archiwizacji.
Przejrzyj montowania wybranego kontenera:
docker inspect --format '{{json .Mounts}}' NAZWA_KONTENERA
Zastąp ostatni argument właściwą nazwą lub ID. Odróżnij wolumin zarządzany przez Docker od bind mountu, czyli wskazanego katalogu hosta. Przy tym drugim zużycie miejsca trzeba oceniać także w danym katalogu; raport Dockera nie musi zawierać całej jego zawartości.
Sprawdź cache budowania i logowanie
Jeżeli budujesz wiele wersji obrazów, pamięć podręczna może być ważną częścią rachunku. Dla używanego buildera Buildx pomocne są:
docker buildx ls
docker buildx du
Sprawdź, który builder jest wybrany. Różne buildery mogą mieć oddzielną pamięć podręczną. Czyszczenie niepotrzebnego cache zazwyczaj oznacza późniejsze ponowne pobieranie lub budowanie, ale przed zmianą trzeba ustalić jego rolę w konkretnym projekcie.
Przejrzyj także sterownik logowania i rotację. Dużo komunikatów z jednej usługi może wypełnić dysk, mimo że rozmiar zapisywalnej warstwy kontenera jest niewielki. Domyślny sterownik json-file bez limitów rotacji może gromadzić duże pliki.
Skonfiguruj limity zgodnie z dokumentacją używanego sterownika i potrzebami diagnostycznymi. Zmiana domyślnych ustawień nie przełącza automatycznie istniejących kontenerów; sprawdź procedurę ich odtworzenia. Nie kasuj ręcznie plików wewnętrznego magazynu Dockera podczas pracy usługi.
Dopiero teraz ustal zakres porządków
Zwykłe czyszczenie systemowe może obejmować zatrzymane kontenery, nieużywane sieci, obrazy bez tagu i cache. Dodatkowe flagi rozszerzają zakres. Opcja -a oraz operacje na woluminach wymagają uważnego przeczytania opisu polecenia w używanej wersji.
W szczególności nie dopisuj --volumes do szerokiego polecenia na podstawie przypadkowego poradnika. Przed usunięciem woluminu sprawdź jego projekt, montowania i zawartość oraz wykonaj kopię danych aplikacji właściwą dla tej aplikacji. Dla bazy danych samo skopiowanie aktywnych plików nie zawsze tworzy spójną kopię.
Przy Docker Desktop zwolnienie danych wewnątrz środowiska nie zawsze natychmiast zmniejsza plik dysku wirtualnego na hoście. Sprawdź sposób odzyskiwania miejsca dla swojego systemu i wersji Desktop. Nie usuwaj całego pliku dysku wirtualnego w przekonaniu, że to cache.
Na koniec porównaj raport Dockera z wolnym miejscem systemu. Jeżeli nadal brakuje dużej części rachunku, zbadaj logi, bind mounty, inne środowiska i pliki wirtualne. Przy hoście linuksowym pomoże poradnik sprawdzania zużycia dysku w Linuksie. Dane aplikacji objęte porządkami powinny mieć sprawdzoną drogę odtworzenia, zanim usuniesz ich jedyną kopię.








