当前位置: 首页 > 知识库问答 >
问题:

如何在docker devmapper和CentOS7上释放空间?

陆宇航
2023-03-14

我正在学习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

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

[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

如何释放磁盘空间?

共有2个答案

宇文智敏
2023-03-14

您可以使用:

docker system prune -a -f --volumes

哪里:

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

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

顺便提一下,在我的环境中使用devicemapper驱动程序时,我遇到了很多问题。正如我所提到的,我过去经常打扫,但仍然存在其他devicemapper问题。我强烈建议转到overlay2,它几乎完全解决了所有问题。

孔寒
2023-03-14

运行这三个。无需移除正在运行的容器。

>

  • 清理退出的进程:

    docker rm $(docker ps -q -f status=exited)
    

    清理悬挂卷:

    docker volume rm $(docker volume ls -qf dangling=true)
    

    清理悬空图像:

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

  •  类似资料:
    • 问题内容: 我正在学习docker并且正在使用v1.11.0,我正在尝试安装hadoop,但是devmapper在抱怨可用磁盘空间? 我已删除所有图像,但问题仍然存在: 这是我的磁盘配置: 问题: 如何释放磁盘空间? 谢谢 问题答案: 您可以使用: 哪里: -a ==删除所有未使用的图像 -f ==力 --volumes ==修剪卷。 参见:https : //docs.docker.com/en

    • 问题:如何释放磁盘空间? 谢谢你

    • 问题内容: 我建立了一个用于HTTP2的连接,我该怎么做才能释放客户端和使用的资源? 问题答案: 不需要任何特殊方法来释放“已用”资源。当它变得不可访问时,垃圾收集器将回收它使用的内存。 不存储连接或状态信息。该文档甚至指出应重用: 客户端的传输通常具有内部状态(缓存的TCP连接),因此应重新使用客户端,而不是根据需要创建客户端。客户端可以安全地被多个goroutine并发使用。 如果使用(例如,

    • 我在android Studio3.2中运行android应用程序时遇到以下错误 2018-10-25 00:47:41.743 170 9-1709/?E/Installd:未能在/data上释放208019456;最终自由空间141062144:成功2018-10-25 00:47:41.744 183 9-1946/?w/deviceStorageMonitorService:java.io

    • 问题内容: 有没有一种类似于函数的释放Java内存的方法?还是将对象设置为null并依靠GC是唯一的选择? 问题答案: Java使用托管内存,因此分配内存的唯一方法是使用运算符,而释放内存的唯一方法是依靠垃圾回收器。 该内存管理白皮书(PDF)可能有助于解释发生了什么。 你还可以致电建议垃圾收集器立即运行。但是,Java Runtime做出最终决定,而不是你的代码。 根据Java文档, 调用gc方

    • 我在很多地方读过,线程池减少了线程创建开销,从而提高了性能。但是一旦线程执行完它的run方法,它就会进入dead/terminated状态,这意味着它可以再次重新启动。 那么,线程池如何处理线程的释放呢?它是否真的以某种方式保存线程以服务下一个任务,或者在每次提交任务时在内部创建新线程?