2016-04-28 82 views
47

我正在學習docker,我正在使用v1.11.0 我試圖安裝hadoop,但devmapper在抱怨可用磁盤空間?docker devmapper和CentOS7上的空間問題

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 

我已經刪除了我的所有圖像,但問題仍然存在:

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

,這是我的磁盤配置:

[[email protected] ~]# 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 

問題:我怎麼能釋放磁盤空間?

謝謝

+0

這是否也與loopback unrecoverable存儲問題中的devicemapper相關? https://github.com/docker/docker/issues/3182「devicemapper不推薦用於生產用途」。出於幾個原因,最好遠離設備映射器。我發現很容易切換到覆蓋存儲驅動程序,當然YMMV,但希望不要太多。 'rm -rf/var/lib/docker'在切換時是可選的,但是很容易,我會強烈推薦它。 http://www.projectatomic.io/blog/2015/06/notes-on-fedora-centos-and-docker-storage-drivers/ – gaoithe

+1

僅供參考,您可以通過「'sudo lvs'」查看精簡池磁盤的使用情況。當你想弄清楚你需要清理多少磁盤空間(使用給定的答案)時,這會有所幫助。 –

回答

77

只要運行這三個。無需刪除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) 
    
+4

我從這裏學到了:http://stackoverflow.com/questions/32723111/how-to-remove-old-and-unused-docker-images –

+0

剛剛偶然發現了這個:https://github.com/ajohnstone/ dot-files/blob/master/bash.d/bash/docker 這個人有一些用Docker工作的漂亮功能。只需保存爲可執行文件和「source dokermagik.sh」即可享受。 –

+3

版本1.13現在允許調用'docker system prune' https://docs.docker.com/engine/reference/commandline/system_prune/ –