当前位置: 首页 > 知识库问答 >
问题:

为什么Docker中出现“无”图像?我们如何避免它

夏侯旻
2023-03-14

当我运行docker-comment build命令在Docker中重建图像时,因为我在Dockerfile中更改了一些内容,有时我会得到“无”图像标签。如何才能避免这个事实呢?我想重建图像,但无图像不应该出现。

REPOSITORY  TAG            IMAGE ID            CREATED             SIZE
magento2    latest         b4dce4dcbd4f        16 hours ago        516MB
<none>      <none>         b4ffce2bf91e        16 hours ago        519MB
<none>      <none>         a1aedb60c82a        17 hours ago        516MB
<none>      <none>         ec9a14ae856c        20 hours ago        519MB
<none>      <none>         ef8eba6874cc        23 hours ago        516MB
<none>      <none>         0e53a8b8c303        23 hours ago        516MB
php         7.1-apache     93e6fb4b13e1        3 weeks ago         369MB
mysql       5.6.39         079344ce5ebd        7 months ago        256MB

共有3个答案

孔波
2023-03-14

根据@tgogos所说,除了需要更多的支持之外,没有什么可补充的。

您可以在此处检查悬挂和非悬挂图像的图像大小:

docker system df -v

不要被中间图像窃听。通过这种方式,您可以监督构建过程通过为Dockerfile的每一行保留中间图像而变得更加高效,也就是说,如果没有发生任何更改,那么在构建过程中可以跳过这样一行。

南门烈
2023-03-14

根据我的经验,大部分

docker ps -a

因此,要删除

docker container prune
docker image prune

以上两个命令可以缩写为

docker system prune

凌和悦
2023-03-14

下面是Docker

这些是中间图像,可以使用docker images-a查看。它们不会导致磁盘空间问题,但这肯定是一个屏幕“不动产”问题。因为所有这些

这些图像是悬挂的,这可能会导致磁盘空间问题。这些<代码>

(Docker中的悬空文件系统层是未使用的,没有被任何图像引用。因此,我们需要Docker清除这些悬空图像的机制)

>

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

还有docker image prune选项,但客户端和守护程序API必须至少都是v1.25才能使用此命令。

如果你的案例与中间图像有关,保留它们是可以的,其他图像指向它们的引用。

相关文件:

  • docker rmi
  • docker图片rm
  • docker图像修剪

 类似资料:
  • 问题内容: 当我由于在Dockerfile中进行了更改而在Docker中运行命令以重建映像时,有时会收到“无”映像标签。我们如何避免这个事实?我想重建图像,但不显示 任何 图像。 问题答案: 以下是什么是Docker 映像? 善良 这些是 中间 图像,可以使用查看。它们不会导致磁盘空间问题,但绝对是屏幕空间问题。由于所有这些图像在其含义上都可能会造成混乱。 坏人 这些映像是 悬空 的,可能会导致磁

  • 问题内容: 还有一些类似的问题,但是他们没有回答为什么即使将dockerfile设置为将node_modules容纳在容器中,docker也仍在仓库中创建空目录? 我想知道为什么在主机为空的目录上创建目录,让它已经在容器内的容器中安装了包,以及如何避免它。 问题答案: 没错,映像构建过程是将节点程序包安装到映像目录中。因此,在构建映像之后,映像将包含并且可以使用它来运行应用程序。 由于在Compo

  • 问题内容: 通常我会尽可能避免转换类型,因为我认为这是不良的编码实践,并且可能会导致性能下降。 但是,如果有人要我解释为什么会这样,我可能会像前灯中的鹿一样看它们。 那么,为什么/何时铸造不好? 它对于Java,C#,C ++是通用的,还是每个不同的运行时环境都按照自己的方式处理? 欢迎使用任何语言的细节,例如为什么在c ++中不好? 问题答案: 您已经用三种语言标记了这三种语言,答案在三种语言之

  • 问题内容: 假设我们在页面上有一个DIV ,并且想要将该DIV的内容复制(“复制粘贴”)到另一个DIV中。我们可以这样做: 或使用jQuery: 但是,看来此方法不是一个好主意,应避免使用。 (1)为什么要避免这种方法? (2)应该怎么做呢? 更新: 为了解决这个问题,我们假设DIV中没有ID为ID的元素。 (对不起,我忘了在原始问题中介绍此案。) 结论: 我已经在下面发布了我对这个问题的答案(如

  • 在React中,我尝试了两种方法: 然后更改状态this.setState(this.state) 克隆状态,更改状态克隆,然后更改此.setState(stateClone) 它们都起作用,产生相同的结果。为什么建议(在文档中)设置为状态克隆(使用Object.assign),而不是设置为状态本身?状态的对象标识在React中重要吗(没有Redux)?似乎只要调用setState,不管状态对象标

  • 我的公司不允许使用Mockito。在单元测试中验证。甚至有一个定制的声纳规则 规则如下 应该通过断言来验证结果,而不是使用“验证到执行”过程验证。因为如果我们验证流程,在流程更改后需要更多的努力来维护测试,但输入和输出保持不变。确保每一行代码都对结果有影响,并断言结果以证明逻辑正确 不合规代码示例 合规解决方案 对于数据库或中间件操作,断言使用嵌入式数据库或中间件成功写入数据。 对于restful