镜像构建服务(ImageBuilder)最佳实践

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

背景信息

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

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

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

  • 公共镜像:Alibaba Cloud Linux 3

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

通过以上资源配置在华北2(北京)地域构建自定义镜像test-image并分发至华东1(杭州)地域,在华东1(杭州)地域使用自定义镜像test-image创建Nginx开发环境的ECS实例,然后在本地测试是否可以正常访问Nginx环境。如果可以访问,表示镜像构建服务构建的自定义镜像正常。

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

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择部署与弹性 > icon1 > 镜像构建

  3. 在顶部菜单栏处,选择地域。

  4. 镜像构建页面,单击创建镜像模板

    如果您是第一次访问镜像构建服务,在镜像构建欢迎页面,单击创建镜像模板

  5. 配置镜像模板,完成后单击确定

    本教程中,主要说明配置源镜像的示例配置。关于镜像模板的其他具体操作说明,请参见创建镜像模板并执行构建任务

    • 基本信息:设置构建模板名称描述标签

    • 配置源镜像:单击通过Dockerfile导入模板,导入以下模板内容并单击确定

      本教程中,示例模板内容如下所示。

      FROM IMAGE:aliyun_3_9_x64_20G_alibase_20231219.vhd
      LABEL author="admin" date="2024-01-15" platform="aliyun"
      RUN yum update -y
      RUN rpm --rebuilddb && yum install -y autoconf automake make wget net-tools zlib zlib-devel make gcc openssl-devel pcre pcre-devel tar
      RUN mkdir nginx_copy
      COPY http://nginx.org/download/nginx-1.17.1.tar.gz nginx_copy
      WORKDIR /root/nginx_copy
      USER root
      RUN tar -zxvf nginx-1.17.1.tar.gz
      ENV nginxversion nginx-1.17.1
      WORKDIR /root/nginx_copy/$nginxversion
      RUN ./configure --prefix=/usr/local/nginx && make && make install
      WORKDIR /usr/local/nginx
      ENTRYPOINT ["sbin/nginx","-c"]
      CMD conf/nginx.conf

      镜像构建模板将自动完成配置。

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

      重要

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

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

    • 配置镜像分发:根据您的业务需求,可以将构建的镜像分发至指定地域或共享至指定阿里云账号。

      本教程中示例配置如下所示。

      • 目标镜像名称:目标镜像名称前缀,最终生成的镜像名称会自动拼接执行任务返回的构建任务ID。本示例中名称前缀设置为test-image

      • 当前地域默认分发 华北2(北京)

      • 目标地域:华东1(杭州)。

      • 共享UID:指定共享的阿里云账号。

      • 创建后立即执行:选择

  6. 镜像模板页签,找到已创建的镜像模板,在操作列单击执行

    您可以单击镜像模板ID,在镜像模板详情页面的构建历史页签查看任务执行过程。构建任务的状态为成功时,表示构建镜像任务执行成功,同时会生成对应的镜像ID。

    说明

    如果状态异常,您可以查看执行结果的详细信息,定位并排查问题。

步骤二:查看构建成功的镜像

  1. 镜像模板详情页面的构建历史页签,单击镜像ID进入自定义镜像的详情页。

  2. 单击共享信息页签,查看已共享的阿里云账号。

  3. 查看镜像分发的情况。

    1. 在左侧导航栏,单击实例与镜像 > 镜像

    2. 在顶部菜单栏处,选择镜像分发的地域。

      本示例中选择华东1(杭州)

    3. 自定义镜像页签的镜像列表中,查看分发的镜像。

      说明

      本示例中通过目标镜像名称前缀test-image进行搜索。分发的镜像名称由自定义名称前缀_构建任务ID构成,因此您也可以通过构建任务ID进行搜索。

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

  1. 在左侧导航栏,选择部署与弹性 > icon1 > 镜像构建

  2. 在顶部菜单栏处,选择镜像模板所在的地域。

    本示例中镜像构建的地域为华北2(北京)

  3. 镜像模板页签,找到已创建的镜像模板,单击模板ID进入镜像模板详情页面。

  4. 构建历史页签,单击镜像ID进入自定义镜像的详情页。

  5. 在镜像详情页面右上角单击创建实例,然后完成实例的创建。

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

    • 需要分配公网IPv4地址。

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

  6. 获取实例的公网IP。

    1. 实例创建完成后,返回实例列表页面。

    2. 找到已创建的ECS实例,在IP地址列,复制公网IP地址。

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

    查看到如下图所示的页面,表示Nginx开发环境正常。Nginx