【问题标题】:Eliminate docker <none> images when building using docker-compose使用 docker-compose 构建时消除 docker <none> 图像
【发布时间】:2020-05-07 04:53:37
【问题描述】:

我正在开发一个包含多个 docker 容器的微服务。使用 docker-compose 可以创建我想要的图像,还可以创建其他几个图像副本,这些副本会填满我的磁盘空间。这个其他子图像有什么用,我可以阻止它们被创建,因为它们正在耗尽我的内存。请注意,它们并不是真正的“悬空”,它们只是出现在构建中。

【问题讨论】:

标签: docker docker-compose


【解决方案1】:

图像是 docker build 产生的中间层。它们是最终图像的父层,不能删除,因为您的 latest 图像实际上是指它们。

只有那些未被任何其他层引用的图像才能被删除。这些图像称为dangling。您可以使用以下命令删除悬空图像:

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

【讨论】:

  • 尝试删除任何一个悬空图像都会出现错误 [来自守护程序的错误响应:冲突:无法删除 c565603bc87f(无法强制)-图像具有依赖的子图像]
  • “任何一个悬空图像”是什么意思? docker images -f "dangling=true" -q 的输出是什么?
  • 它给出了一个图像 ID 列表,当我再次列出图像时,它们仍然在列表中,当我尝试删除它们时,我收到上面的错误
  • 你的 docker 版本是多少?它应该起作用了。你也可以试试docker image prune。
  • 我的 docker 版本是 18.09 并且 prune 命令并没有真正得到任何悬空图像...我想知道,不是所有那些未标记的图像都悬空吗?为什么他们不被删除呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
相关资源
最近更新 更多