Docker使用Prune命令清理none镜像

 更新时间:2021年10月25日 14:40:03   作者:Kerry的天空  
本文主要介绍了Docker使用Prune命令清理none镜像,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

none镜像的产生和困惑

我们偶尔会看到 none镜像(虚悬镜像),那是因为

  1. 构建镜像过程中因为脚本错误导致很多镜像构建终止,产生很多none标签的版本
  2. 手动构建镜像的时候没有进行提交,遗留来的垃圾镜像
  3. 这些镜像占据较大的存储空间,需要删除

如下所示

root@instance-o70no2nw:~# docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              867c2dc0031b        12 hours ago        465MB
mytomcat            8.5.0               34c8c864d046        12 hours ago        465MB
ubuntu              16.04               a3551444fc85        2 days ago          119MB
mysql               8.0.16              d72169616e20        4 days ago          443MB
mysql               latest              d72169616e20        4 days ago          443MB
tomcat              latest              5a069ba3df4d        2 weeks ago         465MB

如何清理none对象

Docker 采用保守的方法来清理未使用的对象(通常称为“垃圾回收”),例如镜像、容器、卷和网络:
除非明确要求 Docker 这样做,否则通常不会删除这些对象。这可能会导致 Docker 使用额外的磁盘空间。
对于每种类型的对象,Docker 都提供了一条 prune 命令。
另外,可以使用 docker system prune一次清理多种类型的对象。本主题讲解如何使用这些 prune 修剪命令

修剪镜像

清理none镜像(虚悬镜像)
命令: docker image prune
默认情况下,docker image prune 命令只会清理 虚无镜像(没被标记且没被其它任何镜像引用的镜像)

root@instance-o70no2nw:~# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B

清理无容器使用的镜像

命令: docker image prune -a

默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 --force 标志。
可以使用 --filter 标志使用过滤表达式来限制修剪哪些镜像。例如,只考虑 24 小时前创建的镜像:

$ docker image prune -a --filter "until=24h"

修剪容器

停止容器后不会自动删除这个容器,除非在启动容器的时候指定了 –rm 标志。使用 docker ps -a 命令查看 Docker 主机上包含停止的容器在内的所有容器。你可能会对存在这么多容器感到惊讶,尤其是在开发环境。停止状态的容器的可写层仍然占用磁盘空间。要清理掉这些,可以使用 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 主机上的空间。卷永远不会被自动删除,因为这么做会破坏数据。

$ 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

修剪网络

Docker 网络不会占用太多磁盘空间,但是它们会创建 iptables 规则,桥接网络设备和路由表条目。要清理这些东西,可以使用 docker network prune 来清理没有被容器未使用的网络。

$ docker network 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使用Prune命令清理none镜像的文章就介绍到这了,更多相关Docker 清理none镜像 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决使用Docker Compose管理容器的问题

    解决使用Docker Compose管理容器的问题

    在Docker Compose中,根据一个配置文件,将所有与应用系统相关的应用和对应的容器进行配置,再根据Docker Compose提供的命令进行启动,就可以解决上面说的多容器之间的复杂问题,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • 如何清理docker的overlay2 目录

    如何清理docker的overlay2 目录

    本文介绍了如何清理Docker的overlay2目录,包括确认overlay2目录的位置、清理未使用的容器和镜像、手动清理overlay2目录、清理日志文件、限制日志大小以及检查磁盘空间,感兴趣的朋友一起看看吧
    2025-03-03
  • 5分钟教你实现用docker搭建Redis集群模式和哨兵模式

    5分钟教你实现用docker搭建Redis集群模式和哨兵模式

    本文主要介绍了5分钟实现用docker搭建Redis集群模式和哨兵模式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker中的集群管理与应用方式

    Docker中的集群管理与应用方式

    这篇文章主要介绍了Docker中的集群管理与应用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Docker常见指令详解

    Docker常见指令详解

    Docker是一个开放源代码软件,用于自动化部署应用程序为轻量级、可移植的容器,运行在几乎任何地方,常用指令包括docker pull下载镜像,docker images查看镜像,docker rmi移除镜像等,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 在Docker中利用Tomcat快速部署web应用的方法示例

    在Docker中利用Tomcat快速部署web应用的方法示例

    这篇文章我们就来说一下怎么在docker中快速部署一个web应用。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Docker容器日志查看与清理的方法(亲测有效)

    Docker容器日志查看与清理的方法(亲测有效)

    这篇文章主要介绍了Docker容器日志查看与清理的方法(亲测有效),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Ubuntu15.10安装docker和docker-compose教程

    Ubuntu15.10安装docker和docker-compose教程

    这篇文章主要介绍了Ubuntu15.10安装docker和docker-compose的教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • idea连接docker实现一键部署的方法

    idea连接docker实现一键部署的方法

    这篇文章主要介绍了idea连接docker实现一键部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • docker资源控制管理Cgroup的实现

    docker资源控制管理Cgroup的实现

    本文主要介绍了docker资源控制管理Cgroup的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论