docker devmapper ve CentOS7'de alan sorunu


103

Docker öğreniyorum ve v1.11.0 kullanıyorum hadoop'u kurmaya çalışıyorum ama devmapper boş disk alanından şikayetçi mi?

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

Tüm resimlerimi sildim ancak sorun devam ediyor:

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

ve bu benim disk yapılandırmam:

[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

SORU: Disk alanını nasıl boşaltabilirim?

teşekkür ederim


1
Bu aynı zamanda geridöngüdeki kurtarılamayan depolama sorunlarındaki cihaz eşleştiricisiyle de ilgili mi? github.com/docker/docker/issues/3182 "devicemapper, üretim kullanımı için önerilmez". Birkaç nedenden ötürü cihaz oluşturucudan uzaklaşsanız iyi olur. Yer paylaşımlı depolama sürücüsüne geçmeyi yeterince kolay buldum, elbette YMMV ama umarım çok fazla değil. 'rm -rf / var / lib / docker', geçiş yaparken biraz isteğe bağlıdır, ancak kolaydır ve kesinlikle tavsiye ederim. projectatomic.io/blog/2015/06/...
gaoithe

1
Bilginize, ince havuz disk kullanımını " sudo lvs" ile görebilirsiniz. Bu, "ne kadar" disk alanı temizlemeniz gerektiğini anlamaya çalışırken yardımcı olur (verilen cevapları kullanarak).
Aaron D. Marasco

Yanıtlar:


31

Kullanabilirsiniz:

docker system prune -a -f --volumes

nerede:

  • -a == kullanılmayan tüm resimleri kaldırır
  • -f == kuvvet
  • --volumes == hacimleri azaltın.

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

bir yan not olarak, ortamımda cihaz eşleştirici sürücüsü kullandığımda birçok sorun yaşadım. Eskiden bahsettiğim gibi temizlerdim, ancak hala başka cihaz kullanıcısı sorunları vardı. Overlay2'ye geçmenizi şiddetle tavsiye ediyorum, neredeyse her şeyi tamamen çözdü.


1
Komutları düzenli olarak @ Cokoda-Raka'nın cevabında çalıştırıyoruz, ancak belirli bir Docker ana bilgisayarında, bu komut, gereğinden fazla disk alanı önemli miktarda disk alanı kullandığında gerekliydi. Sanırım bu komutu otomatik temizleme görevlerimize de ekleyeceğim.
StockB

1
Bu, Docker 1.13.1 ile RHEL 7'ye yardımcı oldu. Çalıştırdıktan sonra docker container prune, docker image prune, docker volume prune, hala devmapper / İnce Havuz hata var. Yukarıdaki komut işe yaradı, gerekli alanı temizledi ve arka plan programını yeniden başlatma ihtiyacını ortadan kaldırdı.
Johnathan Elmore

167

Sadece bu üçünü çalıştırın. RUNNING konteynerlerini çıkarmaya gerek yok.

  1. Temizlemeden çıkılan işlemler:

    docker rm $(docker ps -q -f status=exited)
    
  2. Sarkan hacimleri temizleyin:

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. Sarkan görüntüleri temizleyin:

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


19

2
Bu muhtemelen kabul edilen cevap olmalıdır. Diğer cevap, öldürmek istediğinizden daha fazla konteyneri öldürebilir.
DigitalFiz

2
Bu komutlar, makinenin diskini temizlemek için çok yararlıdır, ancak cihaz eşleştirici ve alanla ilgili sorunu gidermemiştir.
Paulo Oliveira

5
Hala bu hata mesajının "ne" olduğunu anlamıyorum, bu nedenle bu komutlar işe yarasa bile nedenini tam olarak anlayamam. "İnce havuz" nedir? Ve çıkış süreçlerinin "veri bloklarını serbest bırakmak" ile ne ilgisi var?
yiati
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.