我制作了一个 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
Run Code Online (Sandbox Code Playgroud)
构建它所基于的 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
Run Code Online (Sandbox Code Playgroud)
我怎样才能找出是什么原因造成的?
这些<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/
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |