镜像构建服务最佳实践

更新时间:
复制 MD 格式

镜像构建服务是阿里云提供的一站式镜像定制、修复与测试、跨地域分发、跨账号共享的服务。本教程通过镜像构建服务构建Nginx开发环境的自定义镜像,并通过该自定义镜像创建ECS实例测试Nginx环境是否正常访问。

前提条件

在首次创建镜像组件或镜像模板时,系统会自动为您创建一个镜像关联服务角色(AliyunServiceRoleForECSImageBuilder),用于授权镜像构建服务访问相关的云资源。当使用RAM用户时,需要手动为其添加镜像构建服务的权限,以便管理镜像构建服务关联角色。主账户默认拥有此权限。具体请参见管理镜像构建服务关联角色。

实践流程

本教程中示例的资源配置说明如下:

  • 当前地域:华北2(北京)

  • 分发地域:华东1(杭州)

  • 公共镜像:Alibaba Cloud Linux 3

  • 镜像模板构建内容:Nginx开发环境

本教程通过镜像构建服务构建Nginx开发环境的流程如下:

  1. 步骤一:创建镜像组件:在华北2(北京)地域创建包含Nginx开发环境的镜像组件。

  2. 步骤二:创建并执行镜像模板:通过创建的镜像组件快速创建镜像模板并执行构建任务,然后将构建的自定义镜像(本教程以Nginx-image作为前缀)分发至华东1(杭州)地域。

  3. 步骤三:创建ECS实例并测试Nginx环境:在华东1(杭州)地域使用构建的自定义镜像创建ECS实例,并在本地测试是否可以正常访问Nginx环境。如果可以访问,表示镜像构建服务构建的自定义镜像可以正常使用。

步骤一:创建镜像组件

  1. 访问ECS控制台-镜像构建。

  2. 在页面左侧顶部,选择目标资源所在的资源组和地域。

  3. 在镜像构建页面,单击镜像组件页签。

    说明

    如果您是第一次访问镜像构建服务,请单击立即体验。

  4. 选择自定义组件页签,然后单击创建镜像组件。

  5. 创建Build组件。

    本教程中主要说明以下参数,其他更多参数说明请参见创建镜像组件。

    • 组件类型:选择Build。

    • 系统类型:选择Linux。

    • 配置组件内容:在YAML页签中直接选择创建安装 Nginx 组件,YAML编辑器会自动生成包含以下三个任务的构建命令,无需修改:

      • BuildNginx:执行sudo yum -y install nginx命令安装Nginx。

      • RunNginx:执行sudo systemctl start nginx命令启动Nginx服务。

      • SetRunNginx:设置Nginx开机自启动。

  6. 创建Test组件。

    本教程中主要说明以下参数,其他更多参数说明请参见创建镜像组件。

    • 组件类型:选择Test。

    • 系统类型:选择Linux。

    • 配置组件内容:在YAML页签中直接选择Nginx 是否安装测试组件,YAML编辑器会自动生成测试任务TestNginxPackages,通过执行nginx -v命令检查Nginx是否已安装,无需修改。

步骤二:创建并执行镜像模板

  1. 在镜像模板页签,单击创建镜像模板。

  2. 完成镜像模板的配置,然后单击页面底部的执行并保存,系统会保存镜像模板并立即执行构建任务。

    本教程中主要说明以下参数,其他更多参数说明请参见创建镜像模板并执行构建任务。

    • 配置源镜像:根据您的业务需求,选择源镜像类型和镜像,镜像模板会基于源镜像进行构建。

      本教程将源镜像类型设置为镜像,然后选择公共镜像,并选择一个Alibaba Cloud Linux 3的镜像,例如aliyun_3_x64_20G_alibase_20241103.vhd。

    • 配置模板内容:在构建模板中添加镜像组件、确定是否开启镜像检测修复以及镜像测试。本教程中示例配置如下表所示。

      参数

      说明

      构建模板

      在左侧下拉列表中选择自定义组件,然后在右侧下拉列表中选择步骤一创建的Build组件。

      是否执行镜像修复

      默认开启,在执行构建任务前系统自动检测并修复构建镜像的一些常见问题,并安装云上镜像的必要组件。

      是否执行镜像测试

      默认开启,在构建任务执行完成后系统自动使用指定的Test类型镜像组件对新镜像进行测试,以确保在正式使用前该镜像可以达到预期的使用效果。

      测试模板

      在左侧下拉列表中选择自定义组件,然后在右侧下拉列表中选择步骤一创建的Test组件。

    • 配置中转实例:根据您对构建镜像的需要,设置中转实例的规格、存储大小、公网带宽等资源。

      重要

      公网带宽默认值为0,即不具备公网访问能力。当您的镜像构建内容中存在需要访问公网的命令时,您必须设置一定值的公网带宽,否则将导致镜像构建任务失败。

      本教程中需要公网访问能力下载依赖,所以必须设置公网带宽/Mbps为非0值。

    • 配置镜像分发:根据您的业务需求,可以将构建的镜像分发至指定地域或共享至指定阿里云账号。本教程中示例配置如下表所示。

      参数

      说明

      目标镜像名称

      目标镜像名称前缀,最终生成的镜像名称会自动拼接执行任务返回的构建任务ID,即自定义名称前缀_构建任务ID。本教程中名称前缀设置为Nginx-image。

      镜像族系

      可选。选择已有的镜像族系,或输入新的镜像族系名称,构建生成的镜像将归入该镜像族系。本教程无需设置。

      分发地域

      默认包含镜像模板所在的当前地域,本教程中显示为默认分发地域: 华北2(北京)。在此基础上添加华东1(杭州),构建的镜像将同时分发至该地域。

      共享 UID

      可选。如需将构建的镜像共享给同地域下的其他阿里云账号,请填写对方的阿里云主账号UID(不支持填写RAM用户的UID)。单次最多可共享给10个用户,总限额请在配额中心查询。共享成功后,如果对方需要通过RAM用户使用该共享镜像,请参见共享自定义镜像为其添加相应权限。本教程无需设置。

  3. 在镜像模板页签中找到已创建的镜像模板,单击镜像模板ID,在镜像模板详情页面的构建历史页签查看任务的执行过程。

    说明

    构建过程大致需要十分钟左右,请您耐心等待。

    • 当构建任务的状态为成功时,表示构建镜像任务执行成功,同时会生成对应的镜像ID。您可以单击镜像ID查看生成的镜像详情。

    • 如果状态为失败,您可以在执行结果中查看详细信息,定位并排查问题。

  4. 在分发地域查看构建的自定义镜像。

    1. 在顶部菜单栏处,选择镜像的分发地域,本教程是华东1(杭州)。

    2. 在自定义镜像页签的镜像列表中,查看生成的新镜像,镜像名称以Nginx-image开头。

步骤三:创建ECS实例并测试Nginx环境

  1. 在顶部菜单栏处,选择构建镜像所在的地域,本教程是华东1(杭州)。

  2. 在构建镜像的操作列中单击创建实例,创建ECS实例。

    请根据您的业务需求创建ECS实例,创建时请注意以下配置项。具体操作及参数说明,请参见使用自定义镜像或共享镜像创建实例。

    • 镜像信息已自动填充无需再填写。

    • 创建完成后需要访问Nginx开发环境,因此需要分配公网IPv4地址。

    • 选择的安全组入方向规则需要开放80端口。

  3. 实例创建完成后,返回实例列表页面,在IP地址列复制ECS实例的公网IP地址。

  4. 在本地环境中打开浏览器,在地址栏中输入ECS实例的公网IP地址进行访问。

    如果浏览器中出现标题为“Welcome to HTTP Server Test Page!”的默认测试页面,表示Nginx已成功安装并启动,说明通过镜像构建服务构建的自定义镜像可以正常使用。

    说明

    您可以远程登录ECS实例,运行nginx -v命令查看已安装的Nginx版本。