重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

云计算核心技术Docker教程:Dockerfile文件FROM命令详解

时间:2020-11-02 18:20:06 作者:重庆seo小潘 来源:
Dockerfile文件FROM指令初始化新的构建阶段并为后续指令设置“基本镜像”。因此,有效的 Dockerfile 必须以 FROM 指令开头。镜像可以是任何有效镜像。 语法格式 FROM [--platform=platform] image [AS name] FROM [--platform=platform] image[:tag] [AS nam

Dockerfile文件FROM指令初始化新的构建阶段并为后续指令设置“基本镜像”。因此,有效的 Dockerfile 必须以 FROM 指令开头。镜像可以是任何有效镜像。

语法格式

FROM [--platform=platform] image [AS name]

FROM [--platform=platform] image[:tag] [AS name]

FROM [--platform=platform] image[@digest] [AS name]

FROM指令详细说明

ARG 是唯一一个可能出现在 FROM 前边的指令;

FROM 可以在单个 Dockerfile 镜像中多次出现以创建多个镜像,或者使用一个构建阶段作为另一个构建阶段的依赖项。只需在每条新 FROM 指令之前记下提交输出的最后一个镜像ID。每条 FROM 指令都清除先前的指令创建的任何状态;

可选的名称可以通过添加给与一个新的构建阶段 AS name 的 FROM 指令。该名称可用于后续 FROM 和 COPY --from= 指示,以引用此阶段构建的镜像;

该tag或digest值是可选的。如果您忽略其中任何一个latest,那么缺省情况下构建器将采用标签。如果构建器找不到该tag值,则返回错误。

FROM指令支持由ARG 第一指令之前的任何指令声明的变量FROM。

ARG CODE_VERSION=latest

FROM base:${CODE_VERSION}

CMD /code/run-app

FROM extras:${CODE_VERSION}

CMD /code/run-extras

ARG在a之前的声明FROM位于构建阶段之外,因此不能在a之后的任何指令中使用它FROM。要ARG在第一次FROM使用声明之前使用默认值,请在ARG构建阶段使用没有值的指令:

ARG VERSION=latest

FROM busybox:$VERSION

ARG VERSION

RUN echo $VERSION > image_version