problem z miejscem na docker devmapper i CentOS7

103

Uczę się dockera i używam v1.11.0 Próbuję zainstalować hadoop, ale devmapper narzeka na wolne miejsce na dysku?

devmapper: Thin Pool has 82984 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior

Usunąłem wszystkie swoje obrazy, ale problem nadal występuje:

[root@localhost hadoop_docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              47af6ca8a14a        3 weeks ago         125 MB
[root@localhost hadoop_docker]#

a to jest moja konfiguracja dysku:

[root@localhost ~]# lsblk
NAME                       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                          8:0    0    8G  0 disk
├─sda1                       8:1    0  500M  0 part /boot
└─sda2                       8:2    0  7.5G  0 part
  ├─centos-root            253:0    0  6.7G  0 lvm  /
  └─centos-swap            253:1    0  820M  0 lvm  [SWAP]
sr0                         11:0    1 1024M  0 rom
loop0                        7:0    0  100G  0 loop
└─docker-253:0-844682-pool 253:2    0  100G  0 dm
loop1                        7:1    0    2G  0 loop
└─docker-253:0-844682-pool 253:2    0  100G  0 dm

PYTANIE: Jak mogę zwolnić miejsce na dysku?

Dziękuję Ci

Manuel Sopena Ballesteros
źródło
1
Czy jest to również związane z problemami z pamięcią masową devicemapper w sprzężeniu zwrotnym? github.com/docker/docker/issues/3182 "devicemapper niezalecane do użytku produkcyjnego". Lepiej odejść od devicemapper z kilku powodów. Okazało się, że dość łatwo jest przełączyć się na sterownik pamięci masowej nakładki, oczywiście YMMV, ale mam nadzieję, że nie za dużo. 'rm -rf / var / lib / docker' jest nieco opcjonalne przy przełączaniu, ale łatwe i bardzo go polecam. projectatomic.io/blog/2015/06/...
gaoithe
1
FYI, możesz zobaczyć użycie dysku cienkiej puli za pomocą „ sudo lvs”. Jest to pomocne, gdy próbujesz dowiedzieć się, „ile” miejsca na dysku musisz wyczyścić (korzystając z podanych odpowiedzi).
Aaron D. Marasco,

Odpowiedzi:

31

Możesz użyć:

docker system prune -a -f --volumes

gdzie:

  • -a == usuwa wszystkie nieużywane obrazy
  • -f == siła
  • --volumes == prune tomy.

patrz: https://docs.docker.com/engine/reference/commandline/system_prune/#description

na marginesie, miałem wiele problemów, kiedy korzystałem ze sterownika devicemapper w swoim środowisku. Kiedyś czyściłem, jak wspomniałem, ale nadal były inne problemy z urządzeniem. Zdecydowanie polecam przejście na overlay2, który rozwiązał prawie wszystko całkowicie.

Tidhar Klein Orbach
źródło
1
Regularnie uruchamiamy polecenia w odpowiedzi @ Cokoda-Raka, ale jeden konkretny host Dockera, to polecenie było konieczne, gdy overaly2 zużywał znaczną ilość miejsca na dysku, więcej niż powinien. Myślę, że dodam to polecenie również do naszych zadań automatycznego czyszczenia.
StockB
1
Pomogło to w RHEL 7 z Dockerem 1.13.1. Po uruchomieniu docker container prune, docker image prune, docker volume prune, wciąż dostał devmapper / błąd Cienki basenie. Powyższe polecenie zadziałało, usuwając niezbędne miejsce i eliminując potrzebę ponownego uruchamiania demona.
Johnathan Elmore
167

Po prostu uruchom te trzy. Nie ma potrzeby wyjmowania BIEŻĄCYCH pojemników.

  1. Czyszczenie zakończonych procesów:

    docker rm $(docker ps -q -f status=exited)
    
  2. Czyszczenie wiszących woluminów:

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. Wyczyść wiszące obrazy:

    docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
    
Cokorda Raka
źródło
4
Nauczyłem się tego stąd: stackoverflow.com/questions/32723111/…
Cokorda Raka
19
Wersja 1.13 umożliwia teraz wywoływanie docker system prune docs.docker.com/engine/reference/commandline/system_prune
Vivek Kodira
2
To prawdopodobnie powinna być akceptowana odpowiedź. Druga odpowiedź może potencjalnie zabić więcej pojemników, niż chcesz zabić.
DigitalFiz
2
Te polecenia są bardzo pomocne w czyszczeniu dysku komputera, ale nie rozwiązały problemu z devicemapper i przestrzenią.
Paulo Oliveira,
5
Nadal nie rozumiem, „co” oznacza ten komunikat o błędzie, więc nawet jeśli te polecenia działają, nie rozumiem w pełni dlaczego. Co to jest „cienki basen”? A co ma wspólnego kończące się procesy z „zwalnianiem bloków danych”?
yiati