linux查看磁盘总大小除了docker,如何查找Docker中使用磁盘空间最多的容器?

342a844e878981da9363efd6f7e15af1.png

背景描述

测试环境某台Docker主机触发磁盘空间报警,经过排查与分析发现是某个docker容器内的应用日志过大导致的,下面是具体的排查步骤。

环境描述

日志文件: php容器 stderr日志

PHP容器: 使用 php:5.6-fpm 镜像

Docker主机:

系统: Ubuntu Server 16.04

Storage Driver: overlay2

容器平台: Rancher 1.6

操作步骤

磁盘空间(文件系统)状态

df -Th /

Filesystem Type Size Used Avail Use% Mounted on

/dev/vda1 ext4 99G 70G 25G 75% /

统计目录占用磁盘空间

du -h --max-depth=1 /

发现最大目录依次如下列表:

/var/

/var/lib/

/var/lib/docker/

/var/lib/docker/overlay2/

最终占用最大的目录是:

ef24649...省略...f7e6933/

这个目录是某个容器临时存储层目录,其生命周期取决于这个容器的生命周期,目录的名称也是临时存储层的ID,我们可以根据这个ID找到目标容器。

找到这个容器

for c in `docker ps -qa`;

do

docker inspect $c

| grep -i 'ef24649...省略...f7e6933' &&

echo $c;

done

8b251ce7f7ae

这里使用Shell循环依次对比当前主机的容器是否包含这个临时存储层ID。

根据容器ID找到容器名字

docker inspect -f '{{ .Name }}' 8b251ce7f7ae

/r-css-css-server-1-d3579e44

释放磁盘空间

最后我们要释放被占用的磁盘空间,可以根据找到容器ID/名称在rancher平台上升级这个应用(旧的容器将被删除替换)。

8a690b3d22448d6e1dea9c54c3e53037.png

验证磁盘空间

df -Th /

Filesystem Type Size Used Avail Use% Mounted on

/dev/vda1 ext4 99G 17G 78G 18% /

小结

最后来总结下文章中的知识点

容器存储层的生存周期和容器一样,容器消亡时容器存储层也随之消亡。

任何保存于容器存储层的信息都会随容器删除而消失。

容器数量较多时可以使用Shell循环,批量对比容器配置信息来找到目标容器。

参考文章

doker&k8s Qun [703906133]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值