none镜像的产生和困惑
我们偶尔会看到 none镜像(虚悬镜像),那是因为 - 构建镜像过程中因为脚本错误导致很多镜像构建终止,产生很多none标签的版本
- 手动构建镜像的时候没有进行提交,遗留来的垃圾镜像
- 这些镜像占据较大的存储空间,需要删除
如下所示 root@instance-o70no2nw:~# docker images -aREPOSITORY TAG IMAGE ID CREATED SIZE<none> <none> 867c2dc0031b 12 hours ago 465MBmytomcat 8.5.0 34c8c864d046 12 hours ago 465MBubuntu 16.04 a3551444fc85 2 days ago 119MBmysql 8.0.16 d72169616e20 4 days ago 443MBmysql latest d72169616e20 4 days ago 443MBtomcat 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 pruneWARNING! This will remove all dangling images.Are you sure you want to continue? [y/N] yTotal reclaimed space: 0B
清理无容器使用的镜像
命令: docker image prune -a 默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 --force 标志。 可以使用 --filter 标志使用过滤表达式来限制修剪哪些镜像。例如,只考虑 24 小时前创建的镜像: $ docker image prune -a --filter "until=24h"
修剪容器
停止容器后不会自动删除这个容器,除非在启动容器的时候指定了 下载地址: docker system命令集合的使用 Rhit高效可视化Nginx日志查看工具 |