2016-04-28 24 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/ –