失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 亲测有效:docker清理Overlay2占用磁盘空间

亲测有效:docker清理Overlay2占用磁盘空间

时间:2022-05-19 20:24:53

相关推荐

亲测有效:docker清理Overlay2占用磁盘空间

使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令df -h发现overlay占用较高。通过命令docker system prune -a清理无用镜像、缓存、挂载数据,也没有什么改变。

prune指令默认会清除所有如下资源:

已停止的容器(container)未被任何容器所使用的卷(volume)未被任何容器所关联的网络(network)所有悬空镜像(image)。

查询 overlay的作用的时候知道:

容器的磁盘占用

每次创建一个容器时,都会有一些文件和目录被创建,例如:

/var/lib/docker/containers/ID目录,如果容器使用了默认的日志模式,他的所有日志都会以JSON形式保存到此目录下。/var/lib/docker/overlay2 目录下含有容器的读写层,如果容器使用自己的文件系统保存了数据,那么就会写到此目录下。

进入到/var/lib/docker/containers目录下 通过du -h --max-depth=1查找大文件占用,发现这些文件中占用空间最大的是***-json.log**文件。而此文件的内容为docker生成的日志文件。

清理脚本

#!/bin/bashecho "======== start clean docker containers logs ========"logs=$(find /var/lib/docker/containers/ -name *-json.log)for log in $logsdoecho "clean logs : $log"cat /dev/null > $logdoneecho "======== end clean docker containers logs ========"

执行完脚本之后,通过命令df -h发现/var/lib/docker/overlay2/ID的占用还是很大

由于构建的镜像,项目日志是存在本地的所以找到日志文件在本地的位置进行清理项目日志文件减少磁盘占用

参考:

//09/15/linux-centos-var-lib-docker-container%E7%9B%AE%E5%BD%95%E5%AF%BC%E8%87%B4%E7%B3%BB%E7%BB%9F%E5%AD%98%E5%82%A8%E7%88%86%E6%BB%A1%EF%BC%8C%E5%8D%A0%E7%94%A8%E5%A4%A7%E9%87%8F%E5%AD%98%E5%82%A8%E8%A7%A3/

https://crycrycry./article/details/111244328?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_antiscanv2&utm_relevant_index=4

如果觉得《亲测有效:docker清理Overlay2占用磁盘空间》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。