Docker磁盘占用查看工具

550次阅读
没有评论

使用 Golang 开发的 Docker 运维小工具,方便运维或开发人员查找容器的磁盘占用,如果机器为 kubernetes node 节点,则可以通过 k8s 参数对名称进行解析, 解析后的名称将更友好的显示 kubernetes pod 信息

k8s 容器临时存储长时间情况下会导致容器磁盘占用量增大,可以通过 ephemeral-storage 参数限制 k8s 容器磁盘, 但是这种会导致使用过程中容器被驱逐,对开发人员不太友好,更好的方式是采用 NFS 或其他磁盘存储

运维人员排查容器磁盘占用可使用 docker system df -v 查看容器和镜像磁盘占用,但是过滤筛选比较麻烦,通过此工具,可以快速过滤筛选磁盘信息,结合 kubectl 可以快速删除占用量大的 POD 容器

https://github.com/typ431127/docker-disk

编译安装

go build

Linux 服务器快速安装

curl https://ddn-cloud.oss-cn-beijing.aliyuncs.com/github/docker-disk/docker-disk-linux-amd64 -o /usr/bin/docker-disk
chmod +x /usr/bin/docker-disk

使用命令

# 显示所有容器磁盘占用
./docker-disk

# 使用 k8s 名称解析
./docker-disk -k8s

# 过滤磁盘占用大于 1g 的容器
./docker-disk -size 1g

# 过滤磁盘占用大于 100m 的容器
./docker-disk -size 100m

# 不显示 k8s pause 容器
./docker-disk -k8s -nopause

配合 kubectl 删除容器

# 显示删除命令
./docker-disk -k8s -size 1g -delete-commond

# 调用 kubectl 删除
./docker-disk -k8s -size 1g -delete-commond |xargs -I {} bash -c "{}"

版本异常解决

Error response from daemon: client version 1.39 is too new. Maximum supported API version is 1.35

解决:

# 指定 API 版本 
./docker-disk -withversion 1.35
./docker-disk -withversion `docker version|grep "API version"|awk '{print $3}'|head -n 1`

截图展示

Docker 磁盘占用查看工具
Docker 磁盘占用查看工具
正文完
 
ddn
版权声明:本站原创文章,由 ddn 2022-08-17发表,共计1027字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。