docker devmapper和CentOS7上的空间问题

Man*_*ros 85 docker

我正在学习docker而我正在使用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
Run Code Online (Sandbox Code Playgroud)

我删除了所有图片,但问题仍然存在:

[root@localhost hadoop_docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
debian              latest              47af6ca8a14a        3 weeks ago         125 MB
[root@localhost hadoop_docker]#
Run Code Online (Sandbox Code Playgroud)

这是我的磁盘配置:

[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
Run Code Online (Sandbox Code Playgroud)

问题:我怎样才能释放磁盘空间?

谢谢

Cok*_*aka 147

只需运行这三个.无需删除RUNNING容器.

  1. 清理退出流程:

    docker rm $(docker ps -q -f status=exited)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 清理悬空卷:

    docker volume rm $(docker volume ls -qf dangling=true)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 清理悬空图像:

    docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
    
    Run Code Online (Sandbox Code Playgroud)

  • 版本1.13现在允许调用`docker system prune`https://docs.docker.com/engine/reference/commandline/system_prune/ (16认同)
  • 我仍然不明白此错误消息的“什么”含义,因此即使这些命令有效,我也无法完全理解原因。什么是“薄池”?退出进程与“释放数据块”有什么关系? (8认同)
  • 我从这里学到了它:http://stackoverflow.com/questions/32723111/how-to-remove-old-and-unused-docker-images (4认同)
  • 不适合我.我猜不够. (4认同)
  • 这应该是公认的答案。另一个答案可能会杀死比您想要杀死的更多的容器。 (2认同)
  • 此命令非常有助于清理机器的磁盘,但没有解决设备映射器和空间的问题. (2认同)

Tid*_*ach 15

您可以使用:

docker system prune -a -f --volumes
Run Code Online (Sandbox Code Playgroud)

哪里:

  • -a ==删除所有未使用的图像
  • -f ==力
  • --volumes ==修剪卷。

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

附带说明,当我在环境中使用devicemapper驱动程序时,我遇到了很多问题。正如我提到的那样,我以前经常进行清洁,但是仍然存在其他devicemapper问题。我强烈建议移至overlay2,它几乎可以完全解决所有问题。