如何清理 Docker 占用的磁盘空间的方法

如何清理 Docker 占用的磁盘空间的方法,第1张

如何清理Docker占用的磁盘空间的方法

本文详细介绍了如何清理Docker占用的储藏室空。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

Docker占用了很多室内空房间。每次你 *** 作容器,获取镜像,部署镜像,构建自己的镜像,你的存储空房间都会被很多人占用。

如果你被这个问题搞糊涂了,那我们就来看看Docker是如何使用储藏室空以及如何获取的。

docker占用的室内空房间可以按照以下说明进行查询:

$dockersystemdf

类型列出了docker应用程序硬盘的四种类型:

  • 图片:所有镜子所占据的室内空房间包括获得的镜子和本地建造的镜子。
  • 容器: *** 作容器占用的室内空房间表示每个容器读写能力层的室内空房间。
  • 本地卷:容器初始化本地数据信息卷的室内空室。
  • 镜像构建全过程导致的BuildCache缓存文件室空(仅在应用BuildKit时可用,Docker18.09以后也可以使用)。
  • 最终的可回收大小是可回收的。

    下面我们就来看看这许多种。

    容器的硬盘占用

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

  • /var/lib/docker/containers/ID文件目录。如果容器应用默认的日志记录方法,那么它的所有日志都将以JSON模式存储在这个文件目录中。
  • /var/lib/docker/overlay2的文件目录包含了容器的读写能力层。如果容器应用程序本身的系统文件存储了数据信息,那么在这个文件目录中就会提到。
  • 现在大家刚开始用一个彻底干净的系统软件,假设docker马上就要安装了:

    首先,启动一个NGINX容器:

    现在,运行df命令后,您将看到:

  • 一面镜子,126MB
  • 一个容器
  • 此时没有可回收的室内空房间,镜像正在应用,因为容器在运行。

    今天,我们在容器中构建了一个100MB空的文档:

    $dockerexec-tiwww\ ddif=/dev/zeroof=test.imgbs=1024count=0seek=$[1024*100]

    再次检查房间空:

    可以看到,容器空所占的房间升级了。此文档存储在此设备的什么位置?

    如上所述,它存储在容器的读写层中。

    当集装箱被终止时,集装箱所占据的室内房间空将变得可回收:

    怎么买?删除容器时,其关系的识字层所占用的室内空房间将被删除。

    您也可以一键删除所有长终止容器:

    $dockercontainerprune

    删除容器后,还可以获取镜像:

    上面的docker容器清理命令用于删除终止的容器。如果您想删除所有容器(包括已终止和已运行的容器),您可以应用以下两个命令:

    $dockerrm-f$(dockerps-aq) $dockercontainerrm-f$(dockercontainerls-aq)

    镜像硬盘占用

    有些镜子是隐藏的:

  • 子镜像,即其他镜像引入的中间镜像,不能删除。
  • 可以删除暂停情况的镜像,即不能轻易再次应用的镜像。
  • 以下说明列出了所有悬挂情况的镜像:

    $dockerimagels-fdangling=true

    删除这种图像:

    $dockerimagerm$(dockerimagels-fdangling=true-q)

    或者:

    $dockerimageprune

    如果要删除所有图像,可以应用以下命令:

    $dockerimagerm$(dockerimagels-q)

    请注意,不能删除已由容器应用的图像。

    硬盘占用数据信息量

    数据卷是容器本身的文档系统之外的数据存储。

    比如容器里的应用有上传照片的功能。提交后,毫无疑问是无法存储在容器内部的。因为容器内部的数据信息会随着容器的死亡而被删除,所以照片要存放在容器外部,也就是数据信息量。

    比如大家运行一个MongoDB容器进行测试,这就引出了很多数据测试。这种数据信息不在容器中,而是在数据信息量中,因为数据信息量是应用在MongoDB的Dockerfile中的。

    测试结束后,MongoDB容器被删除,但是数据测试还在,没有被删除。

    删除尚未应用的数据信息量:

    $dockervolumerm$(dockervolumels-q)

    或者:

    $dockervolumeprune

    构建缓存的硬盘占用

    Docker18.09导入了BuildKit,提高了构建全过程的特性、安全性、存储系统等工作能力。

    删除构建缓存可以应用指令:

    $dockerbuilderprune

    一键清洗

    根据上面的指示,我们都知道容器、镜像、数据信息卷都出现了子指令prune,帮助你获取室内空房间。

    其实docker系统软件还有一个子指令prune,可以一键清理不活跃的室内空房间:

    $dockersystemprune

    按时执行这个指令是一个好习惯。

    中文翻译自:

    https://medium.com/better-programming/docker-tips-clean-up-your-local-machine-35f370a01a78

    文章里的内容就这些了。期待对大家的学习和培训有所帮助,也期待大家的应用。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774671.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存