我有一个CI流水线,每次运行流水线时都会构建我的应用程序的Docker镜像(并且流水线是通过代码推送到git存储库触发的)。
Docker镜像由多个中间层组成,这些层逐渐变得非常大。 大多数中间图像对每次运行而言都是相同的,因此Docker的缓存机制被充分利用。
然而,问题在于最终的两个层对于每次运行都是不同的,因为它们源于Dockerfile中的COPY语句,其中内置的应用程序工件被复制到镜像中。 由于每次运行都会修改工件,已经缓存的底部镜像将始终无效。 这些图像每个大小为800mb。
有什么Docker命令可以识别(和删除)被新图像替换的这些镜像,即当它们变得无效时?
我想让我的CI流水线在运行结束时将它们删除,以便它们不会悬挂在CI服务器上并浪费大量磁盘空间。
docker image prune
而不是docker images purge
。 - Dzianis