前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何查找Docker中使用磁盘空间最多的容器?

如何查找Docker中使用磁盘空间最多的容器?

作者头像
用户1560186
发布2019-11-20 17:15:03
1.5K0
发布2019-11-20 17:15:03
举报
文章被收录于专栏:运维录运维录运维录
背景描述

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

环境描述

日志文件: php容器 stderr日志
PHP容器: 使用 php:5.6-fpm 镜像
Docker主机:
    系统: Ubuntu Server 16.04
    Storage Driver: overlay2
容器平台: Rancher 1.6

操作步骤

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

df -Th /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext4   99G   70G   25G  75% /

2. 统计目录占用磁盘空间

du -h --max-depth=1 /

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

/var/
/var/lib/
/var/lib/docker/
/var/lib/docker/overlay2/

最终占用最大的目录是: ef24649...省略...f7e6933/

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

3. 找到这个容器

for c in `docker ps -qa`; \
do \
  docker inspect $c \
  | grep -i 'ef24649...省略...f7e6933' && echo $c; \
done

8b251ce7f7ae

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

4. 根据容器ID找到容器名字

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

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

5. 释放磁盘空间

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

6. 验证磁盘空间

df -Th /
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext4   99G   17G   78G  18% /

小结

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

  • 容器存储层的生存周期和容器一样,容器消亡时容器存储层也随之消亡。
  • 任何保存于容器存储层的信息都会随容器删除而消失。
  • 容器数量较多时可以使用Shell循环,批量对比容器配置信息来找到目标容器。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境描述
  • 操作步骤
  • 小结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档