

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 教程：通过 Image Builder 控制台向导使用输出 Docker 容器映像创建映像管道
<a name="start-build-container-pipeline"></a>

本教程将引导您使用**创建映像管道**控制台向导创建自动管道，以构建和维护自定义 EC2 Image Builder Docker 映像。为了帮助您高效地完成这些步骤，系统会在默认设置可用时使用默认设置，并跳过可选部分。

**Topics**
+ [步骤 1：指定管道详细信息](#start-build-container-step1)
+ [步骤 2：选择配方](#start-build-container-step2)
+ [步骤 3：定义基础设施配置-可选](#start-build-container-step3)
+ [步骤 4：定义分配设置-可选](#start-build-container-step4)
+ [步骤 5: 审核](#start-build-container-step5)
+ [步骤 6：清除](#start-build-container-cleanup)

## 步骤 1：指定管道详细信息
<a name="start-build-container-step1"></a>

1. 打开 EC2 Image Builder 控制台，网址为[https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)。

1. 要开始创建管道，请选择**创建映像管道**。

1. 在**常规**部分中，输入您的**管道名称**（*必需*）。

1. 在**生成计划**部分，您可以保留 **计划选项**的默认值。请注意，默认计划中显示**的时区**是通用协调时间 (UTC)。有关 UTC 时间的更多信息以及要查找您所在时区的偏移量，请参阅[时区缩写-全球列表。](https://www.timeanddate.com/time/zones/)

   对于**依赖项更新设置**，请选择**Run pipeline at the scheduled time if there are dependency updates**选项。此设置会让您的管道在开始构建之前检查更新。如果没有更新，它将跳过计划的管道构建。
**注意**  
为确保您的管道能够按预期识别依赖项更新和构建，您必须对基础映像和组件使用语义版本控制 (x.x.x)。要了解有关 Image Builder 资源的语义版本控制的更多信息，请参阅[Image Builder 中的语义版本控制](ibhow-semantic-versioning.md)。

1. 要继续执行下一个步骤，请选择**下一步**。

## 步骤 2：选择配方
<a name="start-build-container-step2"></a>

1. Image Builder 在**配方**一节中默认为**使用现有配方**。首次使用时，请选择**创建新配方**选项。

1. 在**映像类型**一节，选择**Docker 映像**选项以创建一个容器管道，该管道将生成 Docker 映像并将其分配到目标区域的 Amazon ECR 存储库。

1. 在**常规**一节，输入以下必填框：
   + **姓名**—您的配方名称
   + **版本**-您的配方版本（使用格式*<major>.<minor>.<patch>*，其中 major、minor 和 patch 是整数值）。新配方通常以`1.0.0`开头。

1. 在**源映像**一节中，保留**选择映像**、**映像操作系统 (OS)** 和**映像来源**的默认值。这会生成一个由 Amazon 管理的 Amazon Linux 2 容器映像列表，供您从中进行基础映像选择。

   1. 从**映像名称**下拉列表中，选择一个映像。

   1. 保留**自动版本控制选项**的默认值（**使用最新的可用操作系统版本**）。
**注意**  
此设置可确保您的管道对基础映像使用语义版本控制，以检测自动计划作业的依赖项更新。要了解有关 Image Builder 资源的语义版本控制的更多信息，请参阅[Image Builder 中的语义版本控制](ibhow-semantic-versioning.md)。

1. 在 “**组件**” 部分中，您可以选择不添加任何组件并继续。如果要添加组件，可以在 “**构建组件 — Amazon Linux**” 面板中浏览页面上列出的组件。使用右上角的分页控件浏览适用于基础映像操作系统的其他组件。您也可以搜索特定的组件，或者使用组件管理器创建自己的构建组件。

   在本教程中，请选择一个使用最新安全更新来更新 Linux 的组件，如下所示：

   1. 通过在面板顶部的搜索栏中输入单词 `update` 来筛选结果。

   1. 选中 `update-linux` 构建组件的复选框。

   1. 向下滚动，在**选定组件**列表的右上角，选择**全部展开**。

   1. 保留**版本控制选项**的默认值（**使用最新的可用组件版本**）。
**注意**  
此设置可确保您的管道对选定组件使用语义版本控制，以检测自动计划作业的依赖项更新。要了解有关 Image Builder 资源的语义版本控制的更多信息，请参阅[Image Builder 中的语义版本控制](ibhow-semantic-versioning.md)。

      如果您选择了具有输入参数的组件，则还可以在此区域看到这些参数。本教程中未涵盖参数。有关在组件中使用输入参数以及在配方中设置输入参数的更多信息，请参阅 [教程：创建带有输入参数的自定义组件](tutorial-component-parameters.md)。

**重新排序组件（可选）**  
如果您选择了多个组件要包含在映像中，则可以使用 drag-and-drop操作将它们重新排列为它们在构建过程中应遵循的运行顺序。
**注意**  
CIS 加固组件未遵循 Image Builder 配方中的标准组件排序规则。CIS 加固组件始终最后运行，以确保基准测试针对您的输出映像运行。

   1. 向上滚动至可用组件列表。

   1. 选中 `update-linux-kernel-mainline` 构建组件（或您选择的任何其他组件）的复选框。

   1. 向下滚动到**选定组件**列表，查看到至少有两个结果。

   1. 新添加的组件可能不会展开其版本控制。要展开**版本控制选项**，可以选择**版本控制选项**旁边的箭头，也可以关闭和打开**全部展开**开关以展开所有选定组件的版本控制。

   1. 选择其中一个组件，然后向上或向下拖动以更改组件的运行顺序。

   1. 要删除 `update-linux-kernel-mainline` 组件，请从组件框的右上角选择 `X`。

   1. 重复上一步删除您可能已添加的任何其他组件，只选中 `update-linux` 组件。

1. 在 **Dockerfile 模板**一节，选择**使用示例**选项。模板数据由上下**内容**文变量组成，Image Builder 根据容器映像食谱放置构建信息或脚本。

   默认情况下，Image Builder 在 Dockerfile 中使用以下上下文变量。

      
**parentImage（必需）**  
在构建时，此变量会解析为配方的基础映像。  
示例：  

   ```
   FROM
   {{{ imagebuilder:parentImage }}}
   ```  
**environments（如果指定了组件，则为必需）**  
此变量将解析为运行组件的脚本。  
示例：  

   ```
   {{{ imagebuilder:environments }}}
   ```  
**components（可选）**  
Image Builder 解析容器配方中包含的组件的构建和测试组件脚本。此变量可以置于 Dockerfile 中的任意位置，在 environments 变量之后。  
示例：  

   ```
   {{{ imagebuilder:components }}}
   ```

1. 在**目标存储库**一节，指定作为本教程先决条件而创建的 Amazon ECR 存储库名称。此存储库用作管道运行区域（区域 1）中分配配置的默认设置。
**注意**  
在分配之前，目标存储库必须存在于所有目标区域的 Amazon ECR 中。

1. 要继续执行下一个步骤，请选择**下一步**。

## 步骤 3：定义基础设施配置-可选
<a name="start-build-container-step3"></a>

Image Builder 在您的账户中启动 EC2 实例，以自定义映像和运行验证测试。基础设施配置设置为在构建 AWS 账户 过程中将在您的中运行的实例指定基础设施详细信息。

在**基础设施配置**一节中，**配置选项**默认为 `Create infrastructure configuration using service defaults`。这将创建一个 IAM 角色和关联的实例配置文件，供构建实例用来配置您的容器映像。您还可以创建自己的自定义基础设施配置，或使用已创建的设置。有关基础设施配置设置的更多信息，请参阅《*EC2 Image Builder API 参考*》[CreateInfrastructureConfiguration](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateInfrastructureConfiguration.html)中的。

在本教程中，我们将使用默认设置。
+ 要继续执行下一个步骤，请选择**下一步**。

## 步骤 4：定义分配设置-可选
<a name="start-build-container-step4"></a>

分配设置由目标区域和目标 Amazon ECR 存储库名称组成。输出 Docker 映像将部署到每个区域中指定的 Amazon ECR 存储库中。

在**分配设置**一节中，**配置选项**默认为 `Create distribution settings using service defaults`。此选项会将输出 Docker 映像分配到您的管道运行区域（区域 1）的容器配方中指定的 Amazon ECR 存储库。如果您选择 `Create new distribution settings`，则可以覆盖当前区域的 ECR 存储库，并添加更多区域进行分配。

在本教程中，我们将使用默认设置。
+ 要继续执行下一个步骤，请选择**下一步**。

## 步骤 5: 审核
<a name="start-build-container-step5"></a>

**审核**一节显示您配置的所有设置。要编辑任何给定一节中的信息，请选择位于步骤一节中右上角的**编辑**按钮。例如，如果要更改管道名称，请选择**步骤 1：管道详细信息**一节中右上角的**编辑**按钮。

1. 查看设置后，选择**创建管道**来创建您的管道。

1. 如您的资源是为分配设置、基础架构配置、新配方和管道而创建，您可以在页面顶部看到成功或失败的消息。要查看资源的详细信息，包括资源标识符，请选择**查看详细信息**。

1. 查看资源的详细信息后，您可以通过从导航窗格中选择资源类型来查看有关其他资源的详细信息。例如，要查看新管道的详细信息，请从导航窗格中选择**映像管道**。如果构建成功，则您的新管道将显示在**映像管道**列表中。

## 步骤 6：清除
<a name="start-build-container-cleanup"></a>

Image Builder 环境就像家一样，需要定期维护，以帮助您找到所需的内容，并在不费吹灰之力的情况下完成任务。请务必定期对为了测试而创建的临时资源进行清理。否则，您可能会忘记这些资源，然后再也不记得它们的用途。届时，可能还不清楚您能否安全地删除它们。

**提示**  
为防止在删除资源时出现依赖项错误，请确保按以下顺序删除资源：  
映像管道
映像配方
所有剩余的资源

要清除您为本教程创建的资源，请执行以下步骤：

**删除管道**

1. 要查看在您的账户下创建的构建管道列表，请从导航窗格中选择**映像管道**。

1. 导航到 **镜像管道** 页面，然后选中要删除的管道名称旁边的复选框。

1. 在**映像管道**面板顶部的**操作**菜单中，选择**删除**。

1. 若要确认删除，请在框中输入 `Delete`，然后选择**删除**。

**删除容器配方**

1. 要查看在您的账户下创建的容器配方列表，请从导航窗格中选择**容器配方**。

1. 选择**配方名称**旁边的复选框以选择想要删除的配方。

1. 在**容器配方**面板顶部的**操作**菜单中，选择**删除配方**。

1. 若要确认删除，请在框中输入 `Delete`，然后选择**删除**。

**删除基础设施配置**

1. 要查看在您的账户下创建的基础设施配置列表，请从导航窗格中选择**基础设施配置**。

1. 选择**配置名称**旁边的复选框以选择想要删除的基础架构配置。

1. 在**基础设施配置**面板的顶部，选择**删除**。

1. 若要确认删除，请在框中输入 `Delete`，然后选择**删除**。

**删除分配设置**

1. 要查看在您的账户下创建的分配设置列表，请从导航窗格中选择**分配设置**。

1. 选择**配置名称**旁边的复选框以选择您为本教程创建的分配设置。

1. 在**分配设置**面板的顶部，选择**删除**。

1. 若要确认删除，请在框中输入 `Delete`，然后选择**删除**。

**删除映像**  
请按照以下步骤验证您是否已删除从教程管道中创建的所有映像。本教程不太可能创建映像，除非根据构建计划，自您创建管道以来已经过了足够的时间，使得它运行。

1. 要查看在您的账户下创建的映像列表，请从导航窗格中选择**映像**。

1. 对于要移除的映像，选择映像**版本**。此时将打开**映像构建版本**页面。

1. 选中要删除的任何图像的**版本**旁边的复选框。您一次可以选择多个映像版本。

1. 在**映像构建版本**面板的顶部，选择**删除版本**。

1. 若要确认删除，请在框中输入 `Delete`，然后选择**删除**。