Docker:多阶段构建会产生多个镜像

2023-12-14

给出这个多阶段构建的小例子

FROM node:10 AS ui-build
WORKDIR /usr/src/app

FROM node:10 AS server-build
WORKDIR /root/

EXPOSE 3070

ENTRYPOINT ["node"]
CMD ["index.js"]

为什么这会在我的本地文件系统上产生 3 个图像?

"<none>";"<none>";"58d63982fbef";"2020-04-15 17:53:14";"912MB"
"node";"10";"bd83fcefc19d";"2020-04-14 01:32:21";"912MB"
"test";"latest";"3913dd4d03b6";"2020-04-15 17:53:15";"912MB"

我期望两个镜像,基础镜像和服务器构建镜像。我使用了标准的 docker build 命令,即

docker build -t test . 

那么图像的哪些部分是空的,哪些是测试的?

我很困惑


Dockerfile 中的每个块都以FROM线创建一个新图像。如果您使用docker build -t选项,只有最后一个阶段才会用您指定的名称进行标记;剩余的块将显示为<none>在像这样的地方docker images output.

# node:10 is a base image

# Not the final image, will appear as <none>:<none>
FROM node:10 AS ui-build
...

# The final image, will appear as test:latest (`docker build -t` option)
FROM node:10 AS server-build
...

您偶尔会看到 Dockerfiles,其中基础镜像在后续构建阶段被重用,并且它根本不会出现在docker images output.

# Will be hidden because it has descendant images
FROM node:10 AS base
RUN apt-get update && apt-get upgrade

# Will appear as <none>:<none>
FROM base AS ui
...

# Will get the `docker build -t` tag
FROM base
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker:多阶段构建会产生多个镜像 的相关文章

随机推荐

  • 如何在 C# 中重置计时器?

    有三种Timer我所知道的课程 System Threading Timer System Timers Timer and System Windows Forms Timer 但这些都没有 Reset 函数会将当前经过的时间重置为 0
  • C# 将 PDF 文件上传到 Firebase 项目存储?

    你们知道如何将 PDF 文件直接上传到 Firebase 项目存储吗 我在互联网上搜索了很多 但一无所获 有一些 C 的库吗 或者有 C 和 Firebase 的文档吗 请大家帮忙 谢谢 EDIT 好的 我找到了一个库 FirebaseSh
  • 由于异步,在 WebApi 中使用 HttpContext.Current 是危险的

    我的问题与此有点相关 WebApi 相当于具有依赖注入的 HttpContext Items 我们想使用 Ninject 在 WebApi 区域中使用 HttpContext Current 注入一个类 我担心的是 这可能是非常危险 如 W
  • 使用 Path.Combine 时出现路径遍历警告

    我目前正在使用 NewtonJSON 从 JSON 文件加载一些 UI 数据 但是 有一个警告说我有路径遍历 情况如下 有办法消除这个安全漏洞吗 当用户或其他不可信源提供的路径未经检查而与父路径组合时 路径遍历漏洞就可能发生 问题在于路径的
  • 如何以编程方式访问 Maximo 列表 where 子句

    在 Maximo 的 WOTRACK 应用程序中 我需要找到某种方法以编程方式访问当前窗口查询的 where 子句 很明显 它存在于 Maximo 中的某个位置 因为您可以在 UI 中的 高级搜索 gt Where 子句 下访问它 我需要找
  • 如何在HSQLDB和C#.net之间建立连接?

    如何在HSQLDB和C net之间建立连接 我已经看过 SharpHSQL 和 H2Sharp 但无法连接 HSQLDB 尝试这样 确保您已添加 hsqldb dll IKVM OpenJDK Core dll IKVM OpenJDK J
  • 仅使用 C 从 STDIN 读取一行以提取数字标记

    问题陈述 需要处理从 STDIN 接受的输入字符串 并仅查找字符串中存在的所有数字标记 将标记视为由空格分隔的可打印字符序列 在数字标记中 所有字符都是数字 您需要构建一个新字符串 其形式为 numeric token1 numeric t
  • iptables 脚本阻止除所需应用程序之外的所有互联网访问

    CONTEXT 我想要一个 shell 脚本来阻止所有到我的计算机的入站 出站流量 除非我决定要使用浏览器或其他应用程序 在这种情况下 我会调用它并且只有这些应用程序会运行 我研究了以前由聪明人制作的脚本 最后有源链接 并投入时间自己学习使
  • 随机生成 Spritekit 节点

    我正在制作一个游戏 其中有一个节点正在生成并从屏幕顶部掉落 但是我想让节点以 3 秒之间的随机时间间隔生成 因此 1 秒内生成一个 2 4 秒内生成下一个 1 7 秒内生成下一个 依此类推 我正在努力解决这个问题的代码应该是什么 我目前用于
  • “void();”是什么意思作为一个单独的语句在 C++ 中意味着什么? [复制]

    这个问题在这里已经有答案了 这个程序如何编译良好 int main void Does this create a void object here 我已经在 MSVC 和 GCC 下进行了测试 但void是一个不完整的类型 当您对任何其他
  • Android:在 Android Studio 中链接外部静态 C/C++ 库

    我已经看到了许多使用 Cmake 在 Android Studio 中运行本机代码的答案 但是 关于如何将预编译的 C C 库包含到 Android 中的答案却很少 以下是我尝试让本机库 首先尝试使用 a 工作所采取的步骤 1 mylib
  • 如何将 CropVariants 添加到 TYPO3 Flexform 中的图像字段

    我可以像这样覆盖 TCA 中图像字段的cropVaraints columnsOverrides gt image gt label gt LLL EXT myext Resources Private Language locallang
  • RSA 密钥转换为 PEM 文件

    如何转换此 RSA 公钥 109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110 6039072308
  • Google 表格图表中的标题

    当我第一次在 Google 表格中创建图表时 标题位于一个可移动的框中 我可以在图表框中选择并拖动它 如果我随后以编程方式更改该标题 例如 chart chart modify setOption title ChartTitleNameR
  • 为什么我的 CLLocation 速度这么不准确?

    我正在使用 iPhone SDK 我想在我的应用程序中显示当前的速度 有很多应用程序可以做到非常精确 特别是对于跑步或骑自行车等低速情况 我见过的最好的是 RunKeeper 但是 在我的应用程序中 速度绝对不准确 在低速下 它始终为空 只
  • 判断Python是否处于交互模式

    在Python脚本中 有什么方法可以判断解释器是否处于交互模式 这很有用 例如 当您运行交互式 Python 会话并导入模块时 会执行略有不同的代码 例如 关闭日志记录 我看过判断python是否处于 i模式并尝试了那里的代码 但是 该函数
  • Android 中菜单中的图标不显示

    我想将菜单处理程序添加到我的项目中 我读http developer android com guide topics ui menus html同样 它很简单 但没有显示图标 我很困扰 我什至以编程方式添加了一个菜单项 我的代码是 Ove
  • 如何向合并的Word表格添加行?

    这就是桌子的样子 Code Sub WordTableTester Dim CurrentTable As table Dim wdDoc As Document Dim Rw As Long col As Long Dim wdFileN
  • jquery 验证远程响应格式

    尝试使用远程方法验证昵称 rules nickname required true remote checknick php 检查尼克就在这里 name addslashes POST nickname sql select from na
  • Docker:多阶段构建会产生多个镜像

    给出这个多阶段构建的小例子 FROM node 10 AS ui build WORKDIR usr src app FROM node 10 AS server build WORKDIR root EXPOSE 3070 ENTRYPO