problema di spazio su docker devmapper e CentOS7


103

Sto imparando Docker e sto usando la v1.11.0 Sto cercando di installare hadoop ma devmapper si lamenta dello spazio libero su disco?

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

Ho cancellato tutte le mie immagini ma il problema persiste:

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

e questa è la mia configurazione del disco:

[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

DOMANDA: Come posso liberare spazio su disco?

grazie


1
Ciò è anche correlato a devicemapper in problemi di archiviazione irreversibili di loopback? github.com/docker/docker/issues/3182 "devicemapper sconsigliato per uso in produzione". È meglio allontanarsi da devicemapper per alcuni motivi. Ho trovato abbastanza facile passare al driver di archiviazione overlay, YMMV ovviamente, ma spero non troppo. 'rm -rf / var / lib / docker' è in qualche modo opzionale quando si cambia ma è facile e lo consiglio vivamente. projectatomic.io/blog/2015/06/…
gaoithe

1
Cordiali saluti, puoi vedere l'utilizzo del disco del pool sottile con " sudo lvs". Questo aiuta quando si cerca di capire "quanto" spazio su disco è necessario pulire (utilizzando le risposte fornite).
Aaron D. Marasco

Risposte:


28

Puoi usare:

docker system prune -a -f --volumes

dove:

  • -a == rimuove tutte le immagini inutilizzate
  • -f == forza
  • --volumes == elimina i volumi.

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

come nota a margine, ho avuto molti problemi quando ho utilizzato il driver devicemapper nel mio ambiente. Pulivo come ho detto, ma c'erano ancora altri problemi di devicemapper. Consiglio vivamente di passare a overlay2, ha risolto quasi tutto completamente.


1
Eseguiamo regolarmente i comandi nella risposta di @ Cokoda-Raka, ma oe un particolare host Docker, questo comando era necessario quando overaly2 utilizzava una quantità significativa di spazio su disco, più di quanto avrebbe dovuto. Penso che aggiungerò questo comando anche alle nostre attività di pulizia automatizzata.
StockB

1
Ciò ha aiutato RHEL 7 con Docker 1.13.1. Dopo l'esecuzione docker container prune, docker image prune, docker volume prune, abbiamo ancora ottenuto il devmapper / errore sottile Pool. Il comando precedente ha funzionato, liberando lo spazio necessario ed eliminando la necessità di riavviare il demone.
Johnathan Elmore

167

Esegui questi tre. Non è necessario rimuovere i contenitori RUNNING.

  1. Processi usciti dalla pulizia:

    docker rm $(docker ps -q -f status=exited)
    
  2. Pulisci volumi penzolanti:

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. Pulisci immagini penzolanti:

    docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
    


19
La versione 1.13 ora consente di richiamare docker system prune docs.docker.com/engine/reference/commandline/system_prune
Vivek Kodira

1
Questa dovrebbe probabilmente essere la risposta accettata. L'altra risposta può potenzialmente uccidere più contenitori di quanti ne vuoi uccidere.
DigitalFiz

2
Questi comandi sono molto utili per pulire il disco della macchina, ma non hanno risolto il problema con il devicemapper e lo spazio.
Paulo Oliveira

4
Continuo a non capire "cosa" significhi questo messaggio di errore, quindi anche se quei comandi funzionassero, non capirei appieno il motivo. Che cos'è la "piscina sottile"? E cosa ha a che fare l'uscita dei processi con la "liberazione dei blocchi di dati"?
yiati
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.