栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux硬盘空间占用排查及Docker磁盘空间占用排查解决

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux硬盘空间占用排查及Docker磁盘空间占用排查解决

一、linux系统占用 1、查询全局磁盘占用
# 查看总磁盘占用量
df -hl
2、查看某个文件夹下每个文件大小
ls -l
# 按照M显示
ls -l --block-size=m
3、查看某个文件夹下所有文件大小
# 查看当前文件
du -sh .
# 查看指定文件夹
du -sh /home/*
二、docker磁盘占用 1、首先查看每个容器cpu内存等使用情况
docker stats

2、查看整个docker占用情况
docker system df
# 或
df -Th /var/lib/docker/

3、查看每个image、container占用情况
docker system df -v

4、查看每个镜像占用量
docker ps --format "table {{.Size}}t{{.Names}}"
5、平常主要是containers中占用比较大,也就是日志 日志主要在这个目录/var/lib/docker/containers
# 进入容器目录
cd /var/lib/docker/containers
# 查看哪个容器占用大
du -sh .
# 也可以具体进入某个容器
cd /var/lib/docker/containers/a40b469c66170a20baef5d650e6584de71d74fd1f33351955a1ec128de73de05
# 查看文件大小
ls -l --block-size=m
# 清理日志
cat /dev/null > /var/lib/docker/containers/a40b469c66170a20baef5d650e6584de71d74fd1f33351955a1ec128de73de05/a40b469c66170a20baef5d650e6584de71d74fd1f33351955a1ec128de73de05-json.log

一般是.log文件比较大,可以清理,清理Docker容器日志(治标)如果docker容器正在运行,那么使用rm -rf方式删除日志后,通过df -h会发现磁盘空间并没有释放。原因是在Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确姿势是cat /dev/null > *-json.log,当然你也可以通过rm -rf删除后重启docker。

6、接下来,提供一个日志清理脚本clean_docker_log.sh,内容如下:
#!/bin/sh 
echo "======== start clean docker containers logs ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"
# 授权 
chmod +x clean_docker_log.sh
# 执行 
./clean_docker_log.sh
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825540.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号