devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free data blocks

问题描述:
最近遇到docker操作失败,遇到这个错误log:devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free data blocks
解决方法:
运行下面三个命令:(亲测有效,具体原因不太清楚,各有说法,这里记录一下解决办法)
// 注意,以下三个命令执行时可能出错是正常的。
清理exited进程:

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

清理dangling volumes:

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

清理dangling image:

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

如果以上命令还未解决,则需要扩容docker的池空间大小,见如下链接
https://blog.csdn.net/czh8706/article/details/106012426

docker volume 是一个用于管理 Docker 数据卷(Volume)的命令行工具。Docker 数据卷是用于在容器和主机之间持久存储数据的一种机制。

以下是一些常用的 docker volume 命令:

docker volume create <volume_name>:创建一个新的数据卷。
docker volume ls:列出所有的数据卷。
docker volume inspect <volume_name>:查看指定数据卷的详细信息。
docker volume rm <volume_name>:删除指定的数据卷。
docker volume prune:清理无用的数据卷,即没有与容器关联的数据卷。
docker volume cp <source_path> <container_name>:<destination_path>:将主机上的文件或目录复制到运行中的容器中的指定路径。
docker volume rm $(docker volume ls -qf dangling=true):删除所有悬空的数据卷。
通过使用 docker volume 命令,你可以方便地管理 Docker 的数据卷,包括创建、查看、删除和复制等操作。数据卷使得容器可以持久化存储数据,并且可以在不同的容器之间共享数据,提供了更加灵活和可靠的容器化应用部署方式。

 

 

这个命令用于清理 Docker 中的悬空数据卷(dangling volumes)。

解释一下该命令的各个部分:

docker volume ls:列出所有的数据卷。
-q:只显示数据卷的名称。
-f dangling=true:使用过滤器,只显示悬空数据卷。
$(...):将命令的输出作为参数传递给另一个命令。
综合起来,docker volume ls -qf dangling=true 这部分命令会列出所有悬空数据卷的名称。

然后,将这些悬空数据卷的名称作为参数传递给 docker volume rm 命令,用于删除这些悬空数据卷。

因此,docker volume rm $(docker volume ls -qf dangling=true) 这个命令会删除所有悬空数据卷。

注意:悬空数据卷是指没有与任何容器关联的数据卷。清理悬空数据卷可以释放磁盘空间并减少数据卷列表中的混乱。在删除数据卷之前,请确保它们不再需要。

 

 
posted @ 2024-01-12 11:00  滴滴滴  阅读(257)  评论(0编辑  收藏  举报