docker devmapper 및 CentOS7의 공간 문제


103

도커를 배우고 있고 v1.11.0을 사용하고 있는데 hadoop을 설치하려고하는데 devmapper가 여유 디스크 공간에 대해 불평하고 있습니까?

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

모든 이미지를 삭제했지만 문제가 지속됩니다.

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

그리고 이것은 내 디스크 구성입니다.

[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

질문 : 디스크 공간을 어떻게 확보 할 수 있습니까?

감사합니다


1
이것은 또한 루프백 복구 불가능한 스토리지 문제의 devicemapper와 관련이 있습니까? github.com/docker/docker/issues/3182 " devicemapper 는 프로덕션 용도로 권장되지 않습니다." 몇 가지 이유로 devicemapper에서 벗어나는 것이 좋습니다. 물론 오버레이 스토리지 드라이버, YMMV로 전환하는 것이 쉽지만 너무 많이는 아니길 바랍니다. 'rm -rf / var / lib / docker'는 전환 할 때 다소 선택 사항이지만 쉬우므로 적극 권장합니다. projectatomic.io/blog/2015/06/...
gaoithe

1
참고로 " sudo lvs"로 가상 풀 디스크 사용량을 확인할 수 있습니다 . 이것은 정리해야 할 디스크 공간을 "얼마나"(주어진 답변을 사용하여) 알아 내려고 할 때 도움이됩니다.
Aaron D. Marasco 2011

답변:


28

당신이 사용할 수있는:

docker system prune -a -f --volumes

어디:

  • -a == 사용하지 않는 모든 이미지를 제거합니다.
  • -f == 힘
  • --volumes == 볼륨 정리.

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

참고로 환경에서 devicemapper 드라이버를 사용할 때 많은 문제가 발생했습니다. 내가 언급했듯이 청소하곤했지만 여전히 다른 devicemapper 문제가있었습니다. overlay2로 이동하는 것이 좋습니다. 거의 모든 것이 완전히 해결되었습니다.


1
우리는 @ Cokoda-Raka의 대답에있는 명령을 정기적으로 실행하지만 특정 Docker 호스트 하나만 있으면 overaly2가 필요한 것보다 많은 양의 디스크 공간을 사용할 때이 명령이 필요했습니다. 이 명령을 자동화 된 정리 작업에도 추가 할 것이라고 생각합니다.
StockB

1
이는 Docker 1.13.1이 설치된 RHEL 7에서 도움이되었습니다. 실행 한 후 docker container prune, docker image prune, docker volume prune, 우리는 여전히 devmapper / 얇은 풀 오류가 발생했습니다. 위의 명령이 작동하여 필요한 공간을 정리하고 데몬을 다시 시작할 필요가 없습니다.
조나단 엘모어

167

이 세 가지를 실행하십시오. RUNNING 컨테이너를 제거 할 필요가 없습니다.

  1. 종료 된 프로세스 정리 :

    docker rm $(docker ps -q -f status=exited)
    
  2. 매달린 볼륨 정리 :

    docker volume rm $(docker volume ls -qf dangling=true)
    
  3. 매달린 이미지 정리 :

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


19
버전 1.13에서는 이제 docker system prune docs.docker.com/engine/reference/commandline/system_prune
Vivek Kodira

1
이것은 아마도 받아 들여진 대답 일 것입니다. 다른 대답은 잠재적으로 죽이려는 것보다 더 많은 컨테이너를 죽일 수 있습니다.
DigitalFiz

2
이 명령은 시스템의 디스크를 정리하는 데 매우 유용하지만 devicemapper 및 공간 문제를 해결하지는 못했습니다.
Paulo Oliveira

4
이 오류 메시지가 "무엇을"의미하는지 여전히 이해하지 못하므로 이러한 명령이 작동하더라도 그 이유를 완전히 이해하지 못할 것입니다. "씬 풀"이란 무엇입니까? 그리고 기존 프로세스는 "데이터 블록 해제"와 어떤 관련이 있습니까?
yiati 2017
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.