美文网首页
删除Docker没用的镜像,容器,网络,卷,为你的主机“瘦身”

删除Docker没用的镜像,容器,网络,卷,为你的主机“瘦身”

作者: DrinkwaterGor | 来源:发表于2019-06-06 16:12 被阅读0次

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"

其他过滤表达式可用。有关更多示例,请参阅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

相关文章

  • 删除Docker没用的镜像,容器,网络,卷,为你的主机“瘦身”

    Docker采用保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非你明确地要求D...

  • docker 卸载

    步骤 列出安装的 docker 程序包 删除软件包 删除镜像、容器、数据卷(可选)以上操作不会删除docker镜像...

  • docker安装gitlab

    本文阐述如何使用docker安装gitlab官方镜像,并且实现数据卷挂载宿主机,即使容器删除也不会导致数据丢失。 ...

  • CI/CD之Docker容器DevOps知识汇总

    容器与虚拟主机的区别 Docker安装 Docker的镜像和容器 Docker的网络 Docker的持久化存储和数...

  • docker安装mysql

    本文阐述如何使用docker安装mysql官方镜像,并且实现数据卷挂载宿主机,即使容器删除也不会导致数据丢失。 环...

  • docker 删除none镜像

    docker 删除退出的容器镜像 docker 删除none镜像

  • docker部署jar

    停止容器: docker stop user 删除容器: docker rm user 删除镜像: docker ...

  • Docker快速删除

    Docker快速删除 Docker删除无效的容器 Docker删除无用镜像 停用全部运行中的容器 删除全部容器 停...

  • docker 常用命令

    批量删除镜像和容器 删除无用中间镜像 以docker root 进入容器 查看docker 容器耗费资源

  • docker主机瘦身

    1.docker资源详情命令 2. 瘦身 删除那些已停止的容器、dangling 镜像、未被容器引用的 netwo...

网友评论

      本文标题:删除Docker没用的镜像,容器,网络,卷,为你的主机“瘦身”

      本文链接:https://www.haomeiwen.com/subject/zbruxctx.html