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镜像 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jenkins+gitlab+nginx部署前端应用实现

    jenkins+gitlab+nginx部署前端应用实现

    在日常开发中,往往可能同时多个项目并行进行开发,本文介绍了jenkins+gitlab+nginx部署前端应用实现,感兴趣的可以了解一下
    2021-05-05
  • docker Compose部署springboot+vue前端端分离

    docker Compose部署springboot+vue前端端分离

    本文主要介绍了docker Compose部署springboot+vue前端端分离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 基于Docker的Mysql主备搭建的实现步骤

    基于Docker的Mysql主备搭建的实现步骤

    本文主要介绍了基于Docker的Mysql主备搭建的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Docker教程之使用dockerfile生成镜像

    Docker教程之使用dockerfile生成镜像

    这篇文章主要介绍了Docker教程之使用dockerfile生成镜像的相关资料,需要的朋友可以参考下
    2022-11-11
  • 关于docker安全之Docker-TLS加密通讯问题

    关于docker安全之Docker-TLS加密通讯问题

    这篇文章主要介绍了docker安全之Docker-TLS加密通讯,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • docker离线部署docker,部署业务方式

    docker离线部署docker,部署业务方式

    这篇文章主要介绍了docker离线部署docker,部署业务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • idea 连接远程 docker 并部署项目到 docker的过程

    idea 连接远程 docker 并部署项目到 docker的过程

    这篇文章主要介绍了idea连接远程docker并部署项目到docker,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • docker部署Macvlan实现跨主机网络通信的实现

    docker部署Macvlan实现跨主机网络通信的实现

    这篇文章主要介绍了docker部署Macvlan实现跨主机网络通信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 基于docker搭建nginx文件服务器的方法步骤

    基于docker搭建nginx文件服务器的方法步骤

    这篇文章主要介绍了基于docker搭建nginx文件服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Docker动态给容器Container暴露端口操作

    Docker动态给容器Container暴露端口操作

    这篇文章主要介绍了Docker动态给容器Container暴露端口操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论