Docker服务器存储资源池不足的问题解决
系统环境:
- Docker版本:19.03.13
- 操作系统版本:CentOS7.8
一、问题描述
最近在执行Docker运行命令启动镜像时候,无法正常执行Docker启动镜像命令,提示了如下错误信息:
Error:Errorresponsefromdaemon:devmapper:ThinPoolhas163051freedatablockswhichislessthanminimumrequired163840freedatablocks.Createmorefreespaceinthinpoolorusedm.min_free_spaceoptiontochangebehavior
二、问题分析
根据提示的错误信息来看,是Docker的ThinPool池空间不足导致,可用需要创建更多该池的可用空间或者使用dm.min_free_space选项改变池的可用空间大小。
我们通过下面命令查看一下服务器上Docker信息,观察资源使用情况:
$dockerinfo
显示的内容如下:
...
DataSpaceTotal:507.4GB
DataSpaceAvailable:100.67GB
MetadataSpaceUsed:100.4MB
MetadataSpaceTotal:20.147GB
MetadataSpaceAvailable:20.047GB
ThinPoolMinimumFreeSpace:100.74GB
DeferredRemovalEnabled:true
DeferredDeletionEnabled:true
DeferredDeletedDeviceCount:0
...
通过上面信息,观察到ThinPoolMinimumFreeSpace=100.74GB而DataSpaceAvailable=100.67,这说明DataSpaceAvailable可用空间以及低于ThinPool所需最小空间,这会导致镜像无法正常启动。
三、解决问题
1、查看Docker磁盘使用情况
我们可以使用下面命令查看Docker磁盘使用情况:
$dockersystemdf TYPETOTALACTIVESIZERECLAIMABLE Images5001238.31GB34.5GB(90%) Containers6421157MB4.109MB(2%) LocalVolumes37180B0B BuildCache00
其中总共列出如下信息:
- TYPE:资源类型;
- TOTAL:资源总数目;
- ACTIVE:资源处于活动状态数目;
- SIZE:资源使用空间大小;
- RECLAIMABLE:可回收资源大小;
其中的各个组件是指:
- Images:镜像占用存储空间大小;
- Containers:启动的容器占用存储空间大小
- LocalVolumes:本地挂载卷使用存储空间大小;
- BuildCache:构建缓存占用存储空间大小;
如果想详细查看系统占用情况,可用加-v命令查看各个资源使用存储详情
2、对可回收存储资源执行清理命令
Docker提供了存储资源回收功能,命令如下:
清理命令详情请查看Docker官方文档:dockersystemprune
$dockersystemprune
该命令会清理所有未使用的容器,网络,映像(悬空的和未引用的)以及卷(可选),执行该命令后等待一段时间,回收足够的资源后Docker运行镜像恢复正常。
总结
到此这篇关于Docker服务器存储资源池不足的问题解决的文章就介绍到这了,更多相关Docker服务器存储资源池不足解决内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!