当我由于在Dockerfile中进行了某些更改而运行[('foo', 'bar', 'baz'), ([1, 2, 3, 4], [5, 6, 7, 8], [9, 9, 9, 9])]
命令以在Docker中重建映像时,有时会收到“无”映像标签。我们如何避免这个事实?我想重建图像,但不应出现 none 图像。
docker-compose build
答案 0 :(得分:3)
下面是What are Docker <none>:<none>
images?
善良的
<none>:<none>
这些是中间图片,可以使用
docker images -a
查看。它们不会导致磁盘空间问题,但绝对是屏幕空间问题。由于所有这些<none>:<none>
图像在其含义上都可能非常令人困惑。坏人
<none>:<none>
这些图像是悬挂的图像,可能会导致磁盘空间问题。这些
<none>:<none>
图像被列为docker images
的一部分,需要修剪。(Docker中悬空的文件系统层是未使用的,没有任何映像被引用。因此,我们需要一种机制来使Docker清除这些悬空的映像)
如果您的情况与dangling
张图片有关,则可以通过以下方式删除它们:
docker rmi $(docker images -f "dangling=true" -q)
如果您的情况与intermediate
图像有关,可以保留它们,其他图像指向它们的引用。
答案 1 :(得分:1)
根据我的经验,大多数<none>
图片都是由临时容器保存的。由于Docker体系结构,这些容器甚至在停止后也被保留。您可以验证使用了多少个已停止的容器
docker ps -a
因此,要删除<none>
图片,您首先需要删除不需要的容器:
docker container prune
docker image prune
答案 2 :(得分:0)
要删除<none>
层,请使用:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
答案 3 :(得分:0)
根据@tgogos所说的内容,几乎没有什么可补充的,除了需要更多的支持。
您可以在此处检查悬空和非悬空图像的图像大小:
docker system df -v
不要被中间图像所困扰。这样一来,您可以通过为Dockerfile的每一行保留中间映像来监督构建过程的效率,即如果没有更改,可以在构建过程中跳过该行。
答案 4 :(得分:0)
这将删除Windows中所有悬空的docker映像:
for /f %x in ('docker images -f "dangling=true" -q') do docker rmi %x