# FROM

```
FROM [--platform=<platform>] <image> [AS <name>]
```

或

```
FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]
```

或

```
FROM [--platform=<platform>] <image>[@<digest>] [AS <name>]
```

**FROM指令**初始化一个新的构建阶段，并为后续指令设置基础镜像。因此，有效的**Dockerfile**必须以**FROM指令**开头。该镜像可以是任何有效的镜像，比如从公共存储库中拉取镜像。

* **ARG**可能是**Dockerfile**中唯一能够放置在**FROM**之前的指令。
* **FROM**可以在单个**Dockerfile**中多次出现，以创建多个镜像或将一个构建阶段用作另一个构建阶段的依赖。只需在每个新的**FROM指令**之前记录一次输出的最后一个**镜像ID**。每个**FROM指令**会清理由于先前的指令执行而创建的任何状态。
* 通过将**AS**名称添加到**FROM指令**中，可以作为新的构建阶段引用的名称。该名称可以在后续的**FROM** 和**COPY --from=<名称>指令**中使用，以引用此阶段中构建的镜像。
* **标签(tag)**&#x6216;**加密值(digest)**&#x662F;可选的。如果忽略其中任何一个，那么默认情况下构建器将采用**latest标签**。如果构建器找不到标签值，则返回错误。

在**FROM**中引用多种平台的镜像时，可选&#x9879;**--platform**可用于指定镜像的平台。例如**linux/amd64**，**linux/arm64**或**Windows/amd64**。默认情况下，使用构建请求的目标平台。可以在此**标志（flag）**&#x7684;值中使用全局构建参数，例如，自动平台**ARG**允许您将阶段强制到本机构建平&#x53F0;**（--platform = $BUILDPLATFORM）**，并使用它来交叉编译到目标平台内部。
