Docker占用的磁盘空间--/var/lib/docker/overlay2 占用很大

1、查看系统磁盘占用情况

[root@localhost ~]# df -h

2、查看docker工作目录占用磁盘情况

[root@localhost ~]# du -hs /var/lib/docker

3、docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况

[root@localhost ~]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              5                   1                   1.324 GB            815.3 MB (61%)
Containers          1                   1                   32.9 kB             0 B (0%)
Local Volumes       0                   0                   0 B                 0 B

4、迁移 /var/lib/docker 目录

4.1、停止docker服务
[root@localhost ~]# systemctl stop docker
4.2、找一个磁盘空间大的工作目录,存储备份文件
[root@localhost ~]# cp -a /var/lib/docker/*  /backfile

5、自动清理磁盘

docker system prune
	该指令默认会清除所有如下资源:
	已停止的容器(container)
	未被任何容器所使用的卷(volume)
	未被任何容器所关联的网络(network)
	所有悬空镜像(image)
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息

注意:docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的  Docker 镜像

6、手工清理

6.1、网络清理

网络配置通常占用的空间非常低,略

6.2、镜像清理

如果通过 docker system df 分析,是镜像占用了过高空间。则可以根据业务情况,评估相关镜像的使用情况。对于悬空和未使用的镜像, 可以使用如下指令手工清理

# 删除所有悬空镜像,但不会删除未使用镜像:
[root@localhost ~]# docker rmi $(docker images -f "dangling=true" -q)

# 删除所有未使用镜像和悬空镜像。
# 【说明】:轮询到还在被使用的镜像时,会有类似"image is being used by xxx container"的告警信息,所以相关镜像不会被删除,忽略即可。
docker rmi $(docker images-q)
6.3、卷清理

如果通过 docker system df 分析,是卷占用了过高空间。则可以根据业务情况,评估相关卷的使用情况。对于未被任何容器调用的卷(-v 结果信息中,“LINKS” 显示为 0),可以使用如下指令手工清理

# 删除所有未被任何容器关联引用的卷:
[root@localhost ~]# docker volume rm $(docker volume ls -qf dangling=true)

# 也可以直接使用如下指令,删除所有未被任何容器关联引用的卷(但建议使用上面的方式)
# 【说明】轮询到还在使用的卷时,会有类似"volume is in use"的告警信息,所以相关卷不会被删除,忽略即可。
docker volume rm $(docker volume ls -q)
6.4、容器清理

如果通过 docker system df 分析,是某个容器占用了过高空间。则可以根据业务情况,评估相关容器的业务归属并进行处理。对于已停止或其它异常状态的容器,可以结合 -f 或 --filter 筛选器,使用类似如下指令来手工清理

# 删除所有已退出的容器
[root@localhost ~]# docker rm -v $(docker ps -aq -f status=exited)
# 删除所有状态为 dead 的容器
[root@localhost ~]# docker rm -v $(docker ps -aq -f status=dead)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值