docker删除没⽤的镜像
Docker采⽤保守的⽅法来清理未使⽤的对象(通常称为“垃圾收集”),例如图像,容器,卷和⽹络:除⾮你明确地要求Docker这样做,否则通常不会删除这些对象。这可能导致Docker占⽤较多额外的磁盘空间。对于每种类型的对象,Docker都提供了⼀个prune命令修剪⼀次清理多种类型的对象。本⽂主要说明如何使⽤这些prune命令。
prune 镜像
该Docker 镜像 prune命令允许你清理未使⽤的镜像。默认情况下,docker image prune仅清除dangling 镜像。dangling images是未标记的镜像,并且未被任何容器引⽤。要删除dangling images:
要删除现有容器未使⽤的所有镜像,请使⽤-a标志:
$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y
默认情况下,系统会提⽰您继续。要绕过提⽰,请使⽤-f或--force标志强制删除
您可以使⽤带有--filter标志的过滤(表达式)限制修剪(删除)哪些镜像。例如,要仅考虑超过24⼩时前创建的镜像:
$ docker image prune -a --filter"until = 24h"
其他过滤表达式可⽤。有关更多⽰例,请参阅docker image prune 参考。
prune 容器
停⽌容器时,除⾮使⽤--rm标志启动容器,否则不会⾃动删除容器。要查看Docker主机上的所有容器(包括已停⽌的容器),请使⽤docker ps -a。您可能会惊讶地发现存在多少个容器,尤其是在开发系统上!停⽌的容器的可写层仍然占⽤(占据)磁盘空间。要清除它,可以使⽤docker container prune命令。
$ docker container prune
WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y
默认情况下,系统会提⽰您继续。要绕过提⽰,请使⽤-f或--force标志。
默认情况下,将删除所有已停⽌的容器。您可以使⽤--filter标志限制范围。例如,以下命令仅删除超过24⼩时的已停⽌容器:
$ docker container prune --filter"until = 24h"
container容器用法其他过滤表达式可⽤。有关更多⽰例,请参阅docker container prune 参考。
prune 数据卷
卷可以由⼀个或多个容器使⽤,占⽤Docker主机上的空间。卷永远不会⾃动删除,因为这样做可以破坏数据。
$ docker volume prune
WARNING! This will remove all volumes not used by at least one container. Are you sure you want to continue? [y/N] y
默认情况下,将删除所有未使⽤的卷。您可以使⽤--filter标志限制范围。例如,以下命令仅删除未使⽤保留标签标记的卷(下⾯的命令只删除未标记为保留标签的卷):
$ docker volume prune --filter"label!= keep"
其他过滤表达式可⽤。有关更多⽰例,请参阅docker volume prune 参考。
prune ⽹络
Docker⽹络不占⽤太多磁盘空间,但它们确实创建了iptables规则,桥接⽹络设备和路由表条⽬。要清理这些内容,您可以使⽤docker network prune来清理任何容器未使⽤的⽹络。
$ docker network prune
WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue? [y/N] y
默认情况下,系统会提⽰您继续。要绕过提⽰,请使⽤-f或--force标志。
默认情况下,将删除所有未使⽤的⽹络。您可以使⽤--filter标志限制范围。例如,以下命令仅删除超过24⼩时的⽹络:
prune ⼀切
docker system prune命令是修剪镜像,容器,和⽹络的快捷⽅式。在Docker 17.06.0及更早版本中,卷也被修剪。在Docker 17.06.1及更⾼版本中,必须为docker system prune指定修剪卷的--volumes标志。
$ docker system prune
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue? [y/N] y
如果您使⽤的是Docker 17.06.1或更⾼版本,并且还希望修剪卷,请添加--volumes标志:
$ docker system prune --volumes
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? [y/N] y
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论