docker - 在 docker 中,为什么我在构建图像时看不到任何中间图像?
问题描述
码头工人文档说:
Docker 守护进程一个接一个地运行 Dockerfile 中的指令,如有必要,将每条指令的结果提交到新镜像,最后输出新镜像的 ID。Docker 守护进程将自动清理您发送的上下文。
因此,针对上面的引用,我的问题如下:
- 何时需要将一条指令的结果提交给新图像?
- 如果生成了新图像,为什么在完成构建过程时除了最终图像之外看不到任何新图像?
谢谢。
解决方案
作为 Dockerfile 作者,您永远不需要手动提交任何内容。几乎每条 Dockerfile 指令都会产生一个新层;我能想到的唯一例外是 FROM(它在多阶段构建中开始一个新阶段)和 ARG(记录为“不保留在构建的映像中”)。
docker images
不显示没有标签但在其上构建了其他图像的图像。docker images -a
将显示一切。不过,这通常是一个实现细节,而一长串<none>
图像往往更容易造成混淆。另请注意,中间图像 ID 在执行每个步骤时都会被打印出来
docker build
,您还应该能够通过docker history
.docker run
如果您可以告诉某个步骤的输入不正确,但您不确定原因,则在中间图像上运行是一种非常有用的调试技术。
推荐阅读
- python - 某些变量范围会导致不同的数组大小?
- send - SendGrid试用帐户邮件在Nodejs中发送引发错误
- audio - Julia 中的高通滤波器
- javascript - Vue.3 w/ vue.next.draggable 条件
- python - (python,matplotlib)我怎样才能在不是方程的图中做微分?
- css - 你如何增加选择菜单内容的高度?
- drupal-7 - 使用 Drupal 测验模块在现场进行测验,给出 403 错误
- html - 仅禁用Primeng表中一行的单击按钮
- r - 如何检查每行的值是否高于阈值,但每次检查的列都会更改
- ios - 斯威夫特:追加后如何在其他VC中更新ararray.count?UIAlert 操作的 For 循环