从Dockerfile构建映像后出现多个Docker映像

时间:2020-01-07 17:57:56

标签: docker

我制作了一个Dockerfile来构建基于另一个Dockerfile的映像。它以Alpine Linux为基础。

一切正常,但是当我使用--all开关查看图像时,我得到了多个实例,这些实例似乎是我的图像以及基于以下内容的Alpine Linux图像:

$ docker image ls -a
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              5577c25bccd9        20 hours ago        137MB
<none>                    <none>              48f944e609b5        20 hours ago        137MB
paradroid/myapp           latest              f2a0f99986a6        20 hours ago        137MB
<none>                    <none>              d846706db3f4        20 hours ago        137MB
<none>                    <none>              f1410e1d307e        20 hours ago        137MB
<none>                    <none>              e52e6203864a        20 hours ago        137MB
<none>                    <none>              dd3be52289ce        20 hours ago        5.59MB
<none>                    <none>              8559960a8bd0        20 hours ago        5.59MB
<none>                    <none>              04020d8307b3        20 hours ago        5.59MB
<none>                    <none>              fe0f1e73261c        20 hours ago        5.59MB
<none>                    <none>              12229a67b395        20 hours ago        5.59MB
alpine                    latest              cc0abc535e36        13 days ago         5.59MB

构建基于它的Dockerfile时不会发生这种情况。

docker system prune不会删除它们,并且尝试单独删除它们都会给出以下响应:

$ docker image rm d846706db3f4
Error response from daemon: conflict: unable to delete d846706db3f4 (cannot be forced) - image has dependent child images

我如何找出造成这种情况的原因?

2 个答案:

答案 0 :(得分:4)

<none:none>图像是docker build产生的中间层。

Docker映像由层组成。 Dockerfile中的每条指令都会产生一个层。这些图层可在不同的图像之间重复使用。这样可以有效利用磁盘空间。因此,如果一个图层正在被其他图像使用,则将无法删除该图层。

您可以运行以下命令,该命令将删除所有图像中未引用的图层。这些层称为dangling

docker rmi $(docker images -f "dangling=true" -q)

https://www.projectatomic.io/blog/2015/07/what-are-docker-none-none-images/

答案 1 :(得分:0)

使用

docker image rm -f imageid

多个

docker image rm -f imageid imageid
相关问题