在应用迭代过程中,因为解决bug或者增加功能特性而制作新的镜像后,您可能需要修改镜像,同时为了不影响业务,需要保持ECI实例的IP不变。本文介绍如何修改ECI实例的容器镜像,同时保持实例IP不变。
前提条件
已准备好要更新的镜像,且已将镜像上传到镜像仓库中。
操作步骤
下文以部署Nginx的ECI实例为例,介绍如何更新容器镜像,将容器镜像从nginx:1.14.2
修改为nginx:1.15.10
,并保持ECI实例的IP不变。
说明
以下操作步骤以OpenAPI为例进行介绍,如果您使用控制台进行操作,可在容器组页面找到目标ECI实例,单击对应操作列中的修改,即可在弹出页面配置新的容器镜像。
创建ECI实例。
调用CreateContainerGroup接口创建一台ECI实例,采用的参数示例如下,更多信息,请参见CreateContainerGroup。
ContainerGroupName=test Container.1.Name=nginx Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2
接口调用成功将返回ECI实例ID。
查询ECI实例信息。
根据创建完成返回的ECI实例ID,调用DescribeContainerGroups接口查询实例信息。更多信息,请参见DescribeContainerGroups。
返回示例如下,当实例状态为Running时,表示实例创建成功,此时可以获取到ECI实例的IP(IntranetIp)。
{ "TotalCount": 1, "NextToken": "", "RequestId": "869A3D4B-EDC7-5716-BF53-2396028FAC5A", "ContainerGroups": [ { "Cpu": 2, "Memory": 4, "Containers": [ { ...... "Image": "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.14.2", ...... } ], "IntranetIp": "172.16.52.122", ...... "ContainerGroupId": "eci-bp1cug0yp63qnuag****", "RegionId": "cn-hangzhou" } ] }
更新容器镜像。
调用UpdateContainerGroup即可更新实例,采用的参数示例如下,更多信息,请参见UpdateContainerGroup。
ContainerGroupId=eci-bp1cug0yp63qnuag**** Container.1.Image=registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.15.10
再次查询ECI实例信息。
根据更新完成返回的ECI实例ID,调用DescribeContainerGroups接口查询实例信息。
返回示例如下,当实例状态为Running时,表示实例更新成功,此时,可以看到容器镜像已更新,且实例IP保持不变。
{ "TotalCount": 1, "NextToken": "", "RequestId": "0FB8256B-EEB4-511C-98B8-B442163B7352", "ContainerGroups": [ { "Cpu": 2, "Memory": 4, "Containers": [ { ...... "Image": "registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:1.15.10", ...... } ], "IntranetIp": "172.16.52.122", ...... "ContainerGroupId": "eci-bp1cug0yp63qnuag****", "RegionId": "cn-hangzhou" } ] }
文档内容是否对您有帮助?