docker可用容量 查看_查询docker中磁盘使用量大的容器

isun

docker

浏览:1,054

五月 8, 2020

容器日志如果直接输出到标准输入输出可以通过配置docker日志为滚动方式避免写爆磁盘,但是直接输出到容器中的日志等文件仍然可能撑爆容器(默认容器根目录可用空间为10G)。

下述脚本通过docker system df -v获取到各个容器磁盘空间使用量,将磁盘使用量大于1G的容器信息输出,包括主机ip,容器id,镜像名。

check-container-size.sh

#!/bin/sh

# 首先获取默认路由对应的网络设备名,要求各个主机有ip命令,yum install net-tools -y

host_if=$(ip route|grep default|cut -d' ' -f5)

# 根据网络设备名筛选出设备对应IP

host_ip=$(ip a|grep "$host_if$"|awk '{print $2}'|cut -d'/' -f1)

echo "Host IP: $host_ip"

# 获取所有docker组件磁盘使用信息

docker system df -v >ctnr.tmp

# 截取关键字之间的容器信息

sed -i -n "/^Containers space usage/,/^Local Volumes space usage/p" ctnr.tmp

# 删除前3行:

# Containers space usage

# 空行

# CONTAINER ID ...

sed -i '1,3d' ctnr.tmp

# 删除最后两行:

# 空行

# Local Volumes space usage

linenum=`cat ctnr.tmp |wc -l`

# 倒数第2行号

linenum_last2=`expr $linenum - 1`

sed -i ''"$linenum_last2"','"$linenum"'d' ctnr.tmp

# 容器信息格式,仅仅处理容器空间在GB以上的并且处于运行中的容器

# 4fd4ab3e9463 i.harbor.com/tomcat:v8 "catalina.sh run" 0 1.57 GB 14 hours ago Up c36bf34f-7ecd-4665-b811-bc61b56d6a06

# 告警大小,单位GB

warnSizeGB=1

# 仅查询运行中容器

cat ctnr.tmp |grep GB |grep Up |awk -F '"' '{print $1 $3}' |awk '{if($4 >= "'$warnSizeGB'") print "'$host_ip' "$1" "$2" "$4" "$5}'

# 查询所有容器

#cat ctnr.tmp |grep GB | awk -F '"' '{print $1 $3}' |awk '{if($4 >= "'$warnSizeGB'") print "'$host_ip' "$1" "$2" "$4" "$5}'

可以在管理主机上通过ansible查询所有主机上空间使用量大于1Gb的所有容器

ansible all -m script -a "/data/check-container-size.sh"

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值