清理docker占用磁盘空间(docker默认目录存在未被管理的空间)

粗化清理

#清理卷
docker volume prune

#清理镜像
docker image prune

#清理容器
docker container prune

#清理所有包括:dangling镜像
docker system prune 

#清理所有,包括未正在使用未正在运行的,可能暂时停止的也会被清【慎用】
docker system prune  -a

#如果有buid构建操作,也可以清理
docker builder prune

精确化清理

确定磁盘占用情况
docker system df -v

会列出如下四项占用情况

  • Images space usage:
  • Containers space usage:
  • Local Volumes space usage:
  • Build cache usage:
    根据具体业务需求,删除指定的内容即可

通过默认目录/var/lib/docker/overlay2确定清理

  • 进入/var/lib/docker/overlay2
    执行统计命令
    du -h -d 1 .
    # -h人性化显示
    # -d 1深度为1,也就是统计当前的目录列表
    
  • 查询目录是被什么容器占用
#批量查询占用空间大的目录被谁使用
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep  目录名称

查找到具体容器后, 分析具体的占用,很可能是容器内的日志未挂载出来,在容器内占用大量空间


问题来了,清理未被任何容器挂载的目录(意外)

[root@localhost overlay2]# du -h . -d 1|grep G
1.1G    ./eee3dd098c1ee4a27787e59a263c8ad7c2b100c83661ca35254cf84f790dd6b5
1.8G    ./6d5325096b29ce9662bf3ab7fc0dfdc515b6a1e3ec235a905cd3b2d988fa34a3
5.0G    ./f6196ccb8087085ae04c464263017bfbbd9a6bc4da284114a4678e1bfb67c2b4
41G     ./427ff3952fdad65f0fb8581f5ccc9c5f0d405c2720ca0a612703aacd71481a52
1.4G    ./af233808fb6734a00f3795d71460b0290328a38a5051466ab112d86df066e459
8.5G    ./e30b59f92a59033c84fd3bec986d46be00f91c950803c7a8116f7949d44b219e

通过查找超过1G的目录,发现一个41G大小的目录 ,但未关联上任何的容器,已经关闭的容器也未存在;
说明是已经被删除的容器,但为什么未被同时删除?
进入427ff3952fdad65f0fb8581f5ccc9c5f0d405c2720ca0a612703aacd71481a52目录,进到到diff子目录,发现是nacos的日志文件,以前确实存在容器内的日志未挂载出来的现象;后来已经修正,但不知这里还存在未被清理的内容;

确定确实无任何容器挂载,以后也不会有容器挂载这个目录,直接rm

#批量查询占用空间大的目录被谁使用
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep  此目录

#查看有问题的此目录有哪些进程在使用
fuser -uv /var/lib/docker/overlay2/427ff3952fdad65f0fb8581f5ccc9c5f0d405c2720ca0a612703aacd71481a52

#再次使用lsof查找此目录下最后时间的文件是否被占用
lsof |grep access_log.2022-10-30.log

#确定上面三个操作无任何挂载后,开始删除目录
rm -f  427ff3952fdad65f0fb8581f5ccc9c5f0d405c2720ca0a612703aacd71481a52
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值