教程:使用 Image Builder 控制台向导中的输出 Docker 容器镜像创建镜像管道 - EC2Image Builder

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

教程:使用 Image Builder 控制台向导中的输出 Docker 容器镜像创建镜像管道

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

步骤 1:指定管道详细信息

  1. 打开 EC2 Image Builder 控制台,网址为https://console.aws.amazon.com/imagebuilder/

  2. 要开始创建管道,请选择创建映像管道

  3. 常规部分中,输入您的管道名称必需)。

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

    对于依赖项更新设置,请选择Run pipeline at the scheduled time if there are dependency updates选项。此设置会让您的管道在开始构建之前检查更新。如果没有更新,它将跳过计划的管道构建。

    注意

    为确保您的管道能够按预期识别依赖项更新和构建,您必须对基础映像和组件使用语义版本控制 (x.x.x)。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅Image Builder 中的语义版本控制

  5. 要继续执行下一个步骤,请选择下一步

步骤 2:选择配方

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

  2. 镜像类型部分,选择 Docker 镜像选项以创建一个容器管道,该管道将生成 Docker 镜像并将其分发到目标区域的 Amazon ECR 存储库。

  3. 常规一节,输入以下必填框:

    • 姓名—您的配方名称

    • 版本-您的配方版本(使用格式<major>.<minor>.<patch>,其中 major、minor 和 patch 是整数值)。新配方通常以1.0.0开头。

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

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

    2. 保留自动版本控制选项的默认值(使用最新的可用操作系统版本)。

      注意

      此设置可确保您的管道对基础映像使用语义版本控制,以检测自动计划作业的依赖项更新。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅Image Builder 中的语义版本控制

  5. 组件一节中,必须至少选择一个构建组件。

    构建组件— Amazon Linux 面板中,您可以浏览页面上列出的组件。使用右上角的分页控件浏览适用于基础映像操作系统的其他组件。您也可以搜索特定的组件,或者使用组件管理器创建自己的构建组件。

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

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

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

    3. 向下滚动,在选定组件列表的右上角,选择全部展开

    4. 保留版本控制选项的默认值(使用最新的可用组件版本)。

      注意

      此设置可确保您的管道对选定组件使用语义版本控制,以检测自动计划作业的依赖项更新。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅Image Builder 中的语义版本控制

      如果您选择了具有输入参数的组件,则还可以在此区域看到这些参数。本教程中未涵盖参数。有关在组件中使用输入参数以及在配方中设置输入参数的更多信息,请参阅 教程:使用输入参数创建自定义组件

    重新排序组件(可选)

    如果您选择了多个组件要包含在映像中,则可以使用 drag-and-drop操作将它们重新排列为它们在构建过程中应遵循的运行顺序。

    注意

    CIS强化组件不遵守 Image Builder 配方中的标准组件排序规则。CIS强化组件始终最后运行,以确保基准测试针对您的输出图像运行。

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

    2. 选中 update-linux-kernel-mainline 构建组件(或您选择的任何其他组件)的复选框。

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

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

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

    6. 要删除 update-linux-kernel-mainline 组件,请从组件框的右上角选择 X

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

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

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

     

    parentImage (必填)

    在构建时,此变量会解析为配方的基本图像。

    例如:

    FROM {{{ imagebuilder:parentImage }}}
    环境(如果指定了组件,则为必填项)

    此变量将解析为运行组件的脚本。

    例如:

    {{{ imagebuilder:environments }}}
    组件(可选)

    Image Builder 解析容器配方中包含的组件的构建和测试组件脚本。这个变量可以放在 Dockerfile 中的任何地方,放在环境变量之后。

    例如:

    {{{ imagebuilder:components }}}
  7. 目标存储库部分,指定您创建的 Amazon ECR 存储库的名称作为本教程的先决条件。此存储库用作管道运行区域(区域 1)中分配配置的默认设置。

    注意

    在分发之前,所有目标区域的目标存储库必须存在ECR于 Amazon 中。

  8. 要继续执行下一个步骤,请选择下一步

步骤 3:定义基础设施配置-可选

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

基础设施配置一节中,配置选项默认为 Create infrastructure configuration using service defaults。这将创建一个IAM角色和关联的实例配置文件,供构建实例用来配置您的容器映像。您还可以创建自己的自定义基础设施配置,或使用已创建的设置。有关基础设施配置设置的更多信息,请参阅 EC2Image Builder API 参考CreateInfrastructureConfiguration中的。

在本教程中,我们将使用默认设置。

  • 要继续执行下一个步骤,请选择下一步

步骤 4:定义分配设置-可选

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

分配设置一节中,配置选项默认为 Create distribution settings using service defaults。此选项会将输出的 Docker 映像分发到您的管道运行区域(区域 1)的容器配方中指定的亚马逊ECR存储库。如果您愿意Create new distribution settings,则可以覆盖当前区域的ECR存储库,并添加更多区域进行分发。

在本教程中,我们将使用默认设置。

  • 要继续执行下一个步骤,请选择下一步

步骤 5: 审核

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

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

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

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

步骤 6:清理

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

提示

为防止在删除资源时出现依赖项错误,请确保按以下顺序删除资源:

  1. 映像管道

  2. 映像配方

  3. 所有剩余的资源

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

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

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

  3. 映像管道面板顶部的操作菜单中,选择删除

  4. 若要确认删除,请在框中输入 Delete,然后选择删除

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

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

  3. 容器配方面板顶部的操作菜单中,选择删除配方

  4. 若要确认删除,请在框中输入 Delete,然后选择删除

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

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

  3. 基础设施配置面板的顶部,选择删除

  4. 若要确认删除,请在框中输入 Delete,然后选择删除

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

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

  3. 分配设置面板的顶部,选择删除

  4. 若要确认删除,请在框中输入 Delete,然后选择删除

删除映像

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

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

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

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

  4. 映像构建版本面板的顶部,选择删除版本

  5. 若要确认删除,请在框中输入 Delete,然后选择删除