masalah ruang pada buruh pelabuhan devmapper dan CentOS7

103

Saya belajar buruh pelabuhan dan saya menggunakan v1.11.0 Saya mencoba menginstal hadoop tetapi devmapper mengeluh tentang ruang disk kosong?

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

Saya telah menghapus semua gambar saya tetapi masalah tetap ada:

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

dan ini adalah konfigurasi disk saya:

[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

PERTANYAAN: Bagaimana saya bisa mengosongkan ruang disk?

Terima kasih

Manuel Sopena Ballesteros
sumber
1
Apakah ini juga terkait dengan devicemapper dalam loopback masalah penyimpanan yang tidak dapat dipulihkan? github.com/docker/docker/issues/3182 " devicemapper tidak disarankan untuk penggunaan produksi". Lebih baik menjauh dari devicemapper karena beberapa alasan. Saya merasa cukup mudah untuk beralih ke driver penyimpanan overlay, YMMV tentu saja tetapi semoga tidak terlalu banyak. 'rm -rf / var / lib / docker' agak opsional saat beralih tetapi mudah dan saya akan sangat merekomendasikannya. projectatomic.io/blog/2015/06/…
gaoithe
1
FYI, Anda dapat melihat penggunaan thin pool disk dengan " sudo lvs". Ini membantu ketika Anda mencoba mencari tahu "berapa banyak" ruang disk yang perlu Anda bersihkan (menggunakan jawaban yang diberikan).
Aaron D. Marasco

Jawaban:

28

Kamu bisa memakai:

docker system prune -a -f --volumes

dimana:

  • -a == menghapus semua gambar yang tidak digunakan
  • -f == kekuatan
  • --volume == volume pangkas.

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

Sebagai catatan tambahan, saya mengalami banyak masalah saat menggunakan driver peta perangkat di lingkungan saya. Saya dulu membersihkan seperti yang saya sebutkan, tetapi masih ada masalah peta perangkat lainnya. Saya sangat menyarankan pindah ke overlay2, itu menyelesaikan hampir semuanya sepenuhnya.

Tidhar Klein Orbach
sumber
1
Kami secara teratur menjalankan perintah dalam jawaban @ Cokoda-Raka, tetapi untuk satu host Docker tertentu, perintah ini diperlukan ketika overaly2 menggunakan sejumlah besar ruang disk, lebih dari yang seharusnya. Saya pikir saya akan menambahkan perintah ini ke tugas pembersihan otomatis kami juga.
StockB
1
Ini membantu di RHEL 7 dengan Docker 1.13.1. Setelah menjalankan docker container prune, docker image prune, docker volume prune, kami masih punya devmapper / Tipis Renang error. Perintah di atas berfungsi, mengosongkan ruang yang diperlukan dan menghilangkan kebutuhan untuk memulai ulang daemon.
Johnathan Elmore
167

Jalankan saja ketiganya. Tidak perlu menghapus RUNNING container.

  1. Proses pembersihan keluar:

    docker rm $(docker ps -q -f status=exited)
    
  2. Membersihkan volume yang menggantung:

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. Membersihkan gambar yang menggantung:

    docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
    
Cokorda Raka
sumber
4
Saya mempelajarinya dari sini: stackoverflow.com/questions/32723111/…
Cokorda Raka
19
Versi 1.13 sekarang memungkinkan pemanggilan docker system prune docs.docker.com/engine/reference/commandline/system_prune
Vivek Kodira
1
Ini mungkin jawaban yang diterima. Jawaban lain berpotensi membunuh lebih banyak kontainer daripada yang ingin Anda bunuh.
DigitalFiz
2
Perintah ini sangat membantu untuk membersihkan disk mesin, tetapi tidak memperbaiki masalah dengan devicemapper dan ruang.
Paulo Oliveira
4
Saya masih tidak mengerti "apa" arti pesan kesalahan ini, jadi meskipun perintah tersebut berfungsi, saya tidak sepenuhnya mengerti mengapa. Apa itu "kolam tipis"? Dan apa hubungannya proses keluar dengan "membebaskan blok data"?
yiati