Widzę, że Docker zajmuje 12 GB mojego systemu plików:
2.7G /var/lib/docker/vfs/dir
2.7G /var/lib/docker/vfs
2.8G /var/lib/docker/devicemapper/mnt
6.3G /var/lib/docker/devicemapper/devicemapper
9.1G /var/lib/docker/devicemapper
12G /var/lib/docker
Ale skąd mam wiedzieć, jak to jest rozłożone na pojemniki?
Próbowałem dołączyć do kontenerów, uruchamiając (nowa komenda v1.3)
docker exec -it <container_name> bash
a następnie uruchom „df -h”, aby przeanalizować użycie dysku. Wygląda na to, że działa, ale nie z kontenerami używającymi „woluminów z”.
Na przykład używam kontenera tylko danych dla MongoDB, zwanego „danymi mongo”.
Kiedy uruchamiam docker run -it --volumes-from mongo-data busybox
, a następnie df -h
w kontenerze, mówi, że system plików zamontowany na /data/db
(mój kontener tylko danych „mongo-data”) używa 11,3G, ale kiedy to robię du -h /data/db
, mówi, że używa tylko 2,1G.
Jak więc przeanalizować użycie kontenera / woluminu? Lub, w moim przypadku, jak znaleźć rozmiar kontenera „mongo-data”?
źródło
docker-squash
narzędzie Jasona Wildera . Pobierz go z GitHub tutaj: github.com/jwilder/docker-squashOdpowiedzi:
Aby zobaczyć rozmiar pliku swoich kontenerów, możesz użyć
--size
argumentudocker ps
:źródło
docker ps -s
nie bierze pod uwagę dzienników przechowywanych w / var / lib / docker /.27.2MB (virtual 173MB)
jaka jest między nimi różnica?Po wersji 1.13.0 Docker zawiera nowe polecenie
docker system df
pokazujące użycie dysku dokującego .Aby wyświetlić bardziej szczegółowe informacje na temat wykorzystania miejsca:
źródło
docker system df --verbose > docker.stats-2019-07-18.log
Opublikowałem to jako odpowiedź, ponieważ moje powyższe komentarze zostały ukryte:
Podaj rozmiar pojemnika:
Wymień rozmiary woluminów kontenera:
Edycja: Wyświetl listę wszystkich działających rozmiarów i objętości kontenerów:
UWAGA: Zmień „devicemapper” zgodnie z systemem plików Docker (np. „Aufs”)
źródło
/var/lib/docker/devicemapper: No such file or directory
. Masz pomysł, gdzie devicemapper jest przechowywany na komputerze Mac?du
polecenie wewnątrz maszyny wirtualnej hosta boot2docker. Polecenie może również zakończyć się niepowodzeniem, jeśli używaszaufs
zamiast mapera urządzeń.Część głośności już nie działała, więc jeśli ktoś jest tym zainteresowany, po prostu zmieniam nieco powyższy skrypt:
źródło
(ta odpowiedź nie jest przydatna, ale zostawia ją tutaj, ponieważ niektóre komentarze mogą być)
docker images
pokaże „rozmiar wirtualny”, tj. ile łącznie obejmują wszystkie niższe warstwy. Więc podwójne liczenie, jeśli masz pojemniki, które mają ten sam obraz podstawowy.dokumentacja
źródło
Używam,
docker stats $(docker ps --format={{.Names}}) --no-stream
aby uzyskać:źródło
Możesz użyć
aby zobaczyć, w jaki sposób rozmiar obrazu jest dzielony między jego różne podskładniki.
źródło
Pamiętaj, że
docker ps --size
wykonanie polecenia może być kosztowne i może potrwać dłużej niż kilka minut. To samo dotyczy żądań API list kontenerów zsize=1
. Lepiej nie uruchamiać go zbyt często.Spójrz na skompilowane przez nas alternatywy , w tym
du -hs
opcję katalogu stałego woluminu dokera.źródło
Poprawianie odpowiedzi Maxime'a:
docker ps --size
Zobaczysz coś takiego:
Podczas uruchamiania kontenera obraz, z którego kontener jest uruchamiany, jest montowany tylko do odczytu (wirtualny) .
Ponadto zamontowana jest warstwa do zapisu, w której zapisywane są wszelkie zmiany dokonane w kontenerze.
Więc Wirtualna Wielkość (183MB w przykładzie) jest używany tylko raz, niezależnie od tego, ile pojemniki są uruchamiane z tego samego obrazu - Mogę zacząć 1 opakowanie lub tysiąc; nie jest używane dodatkowe miejsce na dysku .
„Rozmiar” (w tym przykładzie 2B) jest unikalny dla każdego kontenera, więc łączne miejsce na dysku wynosi:
183 MB + 5B + 2B
Pamiętaj, że pokazany rozmiar nie obejmuje całego miejsca na dysku używanego dla kontenera.
Rzeczy, które nie są obecnie uwzględnione, to;
- woluminy
- zamiana
- punkty kontrolne
- miejsce na dysku wykorzystywane na pliki dziennika generowane przez kontener
https://github.com/docker/docker.github.io/issues/1520#issuecomment-305179362
źródło