解决 Docker 服务器存储资源池不足问题

简介: 最近在执行 Docker 运行命令启动镜像时候,无法正常执行 Docker 启动镜像命令

系统环境:

  • Docker 版本:19.03.13
  • 操作系统版本:CentOS 7.8

1)问题描述

最近在执行 Docker 运行命令启动镜像时候,无法正常执行 Docker 启动镜像命令,提示了如下错误信息:

Error: Error response from daemon: devmapper: Thin Pool has 163051 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

2)问题分析

根据提示的错误信息来看,是 Docker 的 Thin Pool 池空间不足导致,可用需要创建更多该池的可用空间或者使用 dm.min_free_space 选项改变池的可用空间大小。

我们通过下面命令查看一下服务器上 Docker 信息,观察资源使用情况:

$ docker info

显示的内容如下:

...
Data Space Total: 507.4GB
Data Space Available: 100.67GB
Metadata Space Used: 100.4MB
Metadata Space Total: 20.147GB
Metadata Space Available: 20.047GB
Thin Pool Minimum Free Space: 100.74GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
...

通过上面信息,观察到 Thin Pool Minimum Free Space = 100.74GBData Space Available = 100.67,这说明 Data Space Available 可用空间以及低于 Thin Pool 所需最小空间,这会导致镜像无法正常启动。

3)解决问题

1、查看 Docker 磁盘使用情况

我们可以使用下面命令查看 Docker 磁盘使用情况:

$ docker system df

TYPE            TOTAL     ACTIVE   SIZE       RECLAIMABLE
Images           500      12       38.31GB     34.5GB (90%)
Containers       64       21       157MB       4.109MB (2%)
Local Volumes    37       18       0B          0B
Build Cache      0        0        

其中总共列出如下信息:

  • TYPE:资源类型;
  • TOTAL:资源总数目;
  • ACTIVE:资源处于活动状态数目;
  • SIZE:资源使用空间大小;
  • RECLAIMABLE:可回收资源大小;

其中的各个组件是指:

  • Images:镜像占用存储空间大小;
  • Containers:启动的容器占用存储空间大小
  • Local Volumes:本地挂载卷使用存储空间大小;
  • Build Cache:构建缓存占用存储空间大小;
如果想详细查看系统占用情况,可用加 -v 命令查看各个资源使用存储详情

2、对可回收存储资源执行清理命令

Docker 提供了存储资源回收功能,命令如下:

清理命令详情请查看 Docker 官方文档: docker system prune
$ docker system prune

该命令会清理所有未使用的容器,网络,映像(悬空的和未引用的)以及卷(可选),执行该命令后等待一段时间,回收足够的资源后 Docker 运行镜像恢复正常。

目录
相关文章
|
21天前
|
存储 数据挖掘 索引
服务器数据恢复—LeftHand存储结构和P4500存储数据恢复案例
LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,同时还支持卷快照,卷动态扩容等。下面简单聊一下LeftHand存储的结构和一个LeftHand p4500存储中磁盘阵列数据恢复案例。
服务器数据恢复—LeftHand存储结构和P4500存储数据恢复案例
|
23天前
|
存储 运维 Oracle
服务器数据恢复—光纤共享存储互斥出现问题的数据恢复案例
两台SOLARIS系统(SPARC平台)的服务器通过光纤交换机共享同一个存储作为CLUSTER使用。正常情况下只有A服务器工作。如果A服务器发生故障宕机,可将A服务器关机,开启B服务器接管。但由于配置不当导致共享存储互斥出现问题。 管理员进行运维检查时发现B服务器连接了一块未知磁盘。由于B服务器并未启用,处于闲置状态,所以管理员也将这块磁盘当作闲置的,于是在B服务器上将磁盘的某个分区做了newfs。没想到这块磁盘就是那个共享存储,执行操作没有多长时间A服务器就开始报警并宕机。
|
17天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
99 18
|
1月前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
1月前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
13天前
|
存储 数据中心 Docker
Docker如何实现资源隔离?
Docker如何实现资源隔离?
24 1
|
18天前
|
存储 弹性计算
阿里云服务器系统盘存储空间不够用怎么办?
当阿里云服务器系统盘空间不足时,您可以通过系统盘扩容或挂载数据盘解决。系统盘扩容无需重启服务器,详细步骤见系统盘扩容教程。挂载数据盘需预先购买,并确保与服务器位于同一地域和可用区,最多可挂载64块,详情见挂载数据盘教程
|
21天前
|
存储 监控 Docker
如何限制docker使用的cpu,内存,存储
如何限制docker使用的cpu,内存,存储
|
1月前
|
存储 Linux Docker
在Docker中,如何更改Docker的默认存储设置?
在Docker中,如何更改Docker的默认存储设置?
|
1月前
|
存储 运维 Windows
服务器数据恢复—V7000存储磁盘阵列柜进水导致故障的数据恢复案例
一台v7000存储机头+7个磁盘阵列柜,阵列柜上共有80块SAS机械硬盘,这些磁盘组建了8组Mdisk,加到一个pool中,一共分配了13个lun。服务器安装Windows server操作系统,格式化为NTFS文件系统,存放的数据主要是影像图片资料。
服务器数据恢复—V7000存储磁盘阵列柜进水导致故障的数据恢复案例