一键清理垃圾自动清理_Docker垃圾清理

日常在宿主机上使用Docker对象时,如拉取镜像、长期运行或启停容器,就会产生大量的无容器依赖的镜像、停止不用的容器,以及无容器使用的数据卷、网络等(这些Docker不会主动清理),这些Docker对象垃圾的日积月累堆积,将会影响宿主机的运行性能,造成主机卡顿或空间资源的浪费等。因此,需要对宿主机的垃圾进行清理。

对于每种类型的对象,Docker都提供了一个prune命令。也可以使用docker system prune一次清理多种类型的对象。本文将说明如何使用prune命令来清理这些垃圾。

镜像清理

使用docker image prune命令清理不再使用的镜像,默认情况下,docker image prune仅清除挂起的镜像。所谓挂起的镜像是指没有被标记且没有被任何容器引用镜像。命令如下:

docker image prune

5f1e302f1cef56e97b48443c732a82e0.png

要删除现有容器未使用的所有镜像,请使用以下-a 标志:

docker image prune -a
64332a106ead5e6bcfddc7c5a320e0d1.png

默认情况下,系统会提示y/n。要绕过提示,要使用-f或 --force标记。

15994166f29b1ac9fc608216f5b4b548.png

还可以使用带有--filter标志的过滤表达式限制清理哪些镜像 。

例如,要仅清理超过24小时前创建的镜像,命令如下:

docker image prune -a --filter "until=24h"
e506dd777de3073386ad3543a997e815.png

容器清理

停止容器时一般不会自动删除容器,除非启动容器时使用了--rm标志。

要查看Docker主机上的所有容器,包括已停止的容器,可以使用如下命令:

docker ps -a

c5b519ab7331308328140508358b38e7.png

STATUS为UP的容器为正在运行的容器。其他停止的容器的可写层仍占用磁盘空间。要清除这些垃圾,可以使用如下命令:

docker container prune

5d7098c9088ccabd690edb8836ae2bd2.png

和清理镜像一样,可以使用 f或 –force 和 --filter参数,含义同上。

数据卷清理

同一数据卷可以被一个或多个容器使用,占用Docker主机上的空间。为防止数据被删除,Docker不会自动删除卷。详细可参见《简述Docker数据管理》、《详解Docker数据卷》。

要删除数据卷,可以执行如下命令:

docker volume prune
a463b7ab592b739d913a8a0d81a31ce4.png

和清理镜像一样,可以使用 f或 –force 和 --filter参数,含义同上。

网络清理

Docker网络不会占用太多磁盘空间,但是创建了iptables 规则,桥接网络设备和路由表条目。要清理这些内容,可以使用docker network prune清理任何容器未使用的网络。

8c7f688808d6a24673b7460ff69cf866.png

和清理镜像一样,可以使用 f或 –force 和 --filter参数,含义同上。

一次性清理

docker system prune命令是清理镜像,容器、卷和网络的快捷方式。

注意:在Docker 17.06.0及更早版本中,卷也同时被清理。在Docker 17.06.1及更高版本中,docker system prune命令中必须要指定--volumes标志。这也是为保护数据的一种措施之一。

cd8753b8a7b12625e5bb1bb2268fcf34.png
183505afe90a1a292d62e97cb355d3e9.png

和清理镜像一样,可以使用 f或 –force 和 --filter参数,含义同上。

今天的分享就到这里,欢迎大家关注,收藏,转发,评论。谢谢大家支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值