vấn đề về dung lượng trên docker devmapper và CentOS7


103

Tôi đang học docker và tôi đang sử dụng v1.11.0 Tôi đang cố cài đặt hadoop nhưng devmapper phàn nàn về dung lượng đĩa trống?

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ôi đã xóa tất cả hình ảnh của mình nhưng sự cố vẫn tiếp diễn:

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

và đây là cấu hình đĩa của tôi:

[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

HỎI: Làm cách nào để giải phóng dung lượng ổ đĩa?

cảm ơn bạn


1
Điều này cũng liên quan đến devicemapper trong vấn đề lưu trữ không thể khôi phục lặp lại? github.com/docker/docker/issues/3182 "devicemapper không được khuyến nghị sử dụng trong sản xuất". Tốt hơn nên tránh xa devicemapper vì một số lý do. Tôi thấy nó đủ dễ dàng để chuyển sang trình điều khiển lưu trữ lớp phủ, tất nhiên là YMMV nhưng hy vọng là không quá nhiều. 'rm -rf / var / lib / docker' là tùy chọn khi chuyển đổi nhưng dễ dàng và tôi thực sự khuyên bạn nên sử dụng nó. projectatomic.io/blog/2015/06/…
gaoithe

1
FYI, bạn có thể thấy mức sử dụng ổ đĩa chung mỏng với "sudo lvs ". Điều này hữu ích khi bạn đang cố gắng tìm ra "bao nhiêu" dung lượng đĩa bạn cần để dọn dẹp (sử dụng các câu trả lời cho sẵn).
Aaron D. Marasco

Câu trả lời:


28

Bạn có thể dùng:

docker system prune -a -f --volumes

Ở đâu:

  • -a == xóa tất cả các hình ảnh không sử dụng
  • -f == lực lượng
  • --volumes == khối lượng sơ lược.

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

như một lưu ý phụ, tôi đã gặp rất nhiều vấn đề khi sử dụng trình điều khiển devicemapper trên môi trường của mình. Tôi đã từng làm sạch như tôi đã đề cập, nhưng vẫn còn các vấn đề về trình quản lý thiết bị khác. Tôi thực sự khuyên bạn nên chuyển sang overlay2, nó đã giải quyết hầu hết mọi thứ hoàn toàn.


1
Chúng tôi thường xuyên chạy các lệnh trong câu trả lời của @ Cokoda-Raka, nhưng đối với một máy chủ Docker cụ thể, lệnh này là cần thiết khi overaly2 đang sử dụng một lượng lớn dung lượng ổ đĩa, nhiều hơn mức cần thiết. Tôi nghĩ tôi cũng sẽ thêm lệnh này vào các tác vụ dọn dẹp tự động của chúng tôi.
StockB

1
Điều này đã giúp ích cho RHEL 7 với Docker 1.13.1. Sau khi chạy docker container prune, docker image prune, docker volume prune, chúng tôi vẫn có những devmapper / Thin Pool lỗi. Lệnh trên đã hoạt động, giải phóng dung lượng cần thiết và loại bỏ nhu cầu khởi động lại daemon.
Johnathan Elmore

167

Chỉ cần chạy ba cái này. Không cần phải loại bỏ các vùng chứa RUNNING.

  1. Dọn dẹp các quy trình đã thoát:

    docker rm $(docker ps -q -f status=exited)
    
  2. Dọn dẹp khối lượng treo lơ lửng:

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. Dọn dẹp hình ảnh lủng lẳng:

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

4
Tôi đã học được nó từ đây: stackoverflow.com/questions/32723111/…
Cokorda Raka

19
Phiên bản 1.13 hiện cho phép gọi docker system prune docs.docker.com/engine/reference/commandline/system_prune
Vivek Kodira

1
Đây có lẽ nên là câu trả lời được chấp nhận. Câu trả lời khác có thể giết nhiều thùng chứa hơn mức bạn muốn.
DigitalFiz

2
Các lệnh này rất hữu ích để làm sạch đĩa của máy, nhưng không khắc phục được sự cố với bộ quản lý thiết bị và dung lượng.
Paulo Oliveira

4
Tôi vẫn không hiểu "cái gì" thông báo lỗi này có nghĩa là, vì vậy ngay cả khi những lệnh đó hoạt động, tôi sẽ không hiểu đầy đủ tại sao. "Bể mỏng" là gì? Và các quy trình thoát có liên quan gì đến việc "giải phóng các khối dữ liệu"?
yiati
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.