使用场景

本文介绍ECI命令行客户端(ECI-Client)的使用场景。

背景信息

对于需要构建集群服务的用户而言,推荐您通过ACK集群或ACK Serverless集群来使用ECI,这能充分发挥ECI的优势。但如果您的业务规模较小,或者您只需要部署几个单机应用,则通过ECI-Client可以更加便捷地使用ECI。

ECI-Client提供了与Docker相同的语法来管理ECI实例,如果您熟悉Docker命令行,则可以快速上手使用ECI,本文介绍几个典型的使用场景。

测试容器应用

如果您正在基于ECI开发自己的应用,那您可能需要频繁地部署ECI实例,以便验证应用是否符合预期。此时,使用ECI-Client来部署ECI实例,可以更加方便快捷。

假设构建了一个镜像centos:8.1.1911,并已经上传到了Docker Hub的镜像仓库中,此时,如果要测试它是否按预期工作,在ECI-Client中执行以下命令,即可快速部署ECI实例。

eci run -w 5 centos:8.1.1911 sleep 3600

ECI实例启动完成后,可以通过exec命令登录到实例容器中。假设实例ID为eci-uf60grb03kz2nlm2****,则命令如下:

eci exec -ti eci-uf60grb03kz2nlm2**** bash

训练简易模型

以下示例中,准备了一个示例镜像,它内部包含了一个Python程序,容器启动后,该程序会从网上下载一些数据,然后使用TensorFlow来训练这些数据,训练后的数据保存在/tmp/imagenet

eci run --name test-tensor \
--type ecs.gn6i-c4g1.xlarge \
--gpu 1 \
-w 5 \
--volume /tmp/imagenet \
registry.cn-hangzhou.aliyuncs.com/eci_open/tensorflow:1.0 \
python /home/classify_image/classify_image.py 
说明
  • 由于TensorFlow程序会依赖GPU,因此需要通过--type选项为ECI实例指定一个ECS GPU规格,--gpu用于为实例中的容器分配GPU,--volume用于挂载一个云盘到实例中,用于保存训练后的结果数据。

  • 该镜像较大,ECI需要一定的时间来下载镜像。您可以通过eci ps命令查看实例ID、名称和运行状态等。

等待ECI实例启动成功后,可以通过eci logs命令查看程序的日志输出,假设实例ID为eci-uf60grb03kz2nlm2****,则命令如下:

eci logs eci-uf60grb03kz2nlm2****

部署个人网站

以下示例使用ECI-Client部署一个WordPress网站,该网站依赖一个MySQL数据库。示例镜像来源于DockerHub官网镜像仓库:

  1. 部署MySQL数据库,并指定根用户密码。

    eci run -w 5 --name mysql -e MYSQL_ROOT_PASSWORD=passwd*** -tid mysql:5.7

    命令执行成功后会输出实例ID。您可以通过eci ps命令检查实例状态,直至实例状态变为Running,则表示部署成功。返回示例如下:

    CG_ID                      FIRST_IMAGE   COMMAND     CREATED                     STATUS    PUBLIC_IP        NAME     
    eci-2zecsa60voctfzr2****   mysql:5.7                 2023-02-17T16:33:22+08:00   Running   101.200.XX.XX    mysql  
  2. 获取数据库的内网IP地址。

    以下使用jq命令,如果本地没有jq命令,请先安装。

    eci inspect eci-2zecsa60voctfzr2**** | jq -r .ContainerGroups[0].IntranetIp

    预期返回:

    172.16.XX.XX
  3. 部署WordPress。

    部署时,可以通过环境变量-e传入数据库地址、用户名和密码,通过-w为网站分配一个公网IP并指定带宽为5 MB。

    eci run --name wordpress \
    -e WORDPRESS_DB_HOST=172.16.XX.XX \
    -e WORDPRESS_DB_USER=root \
    -e WORDPRESS_DB_PASSWORD=passwd*** \
    -w 5 \
    -tid wordpress:4.9.8-php5.6-apache

    命令执行成功后会输出实例ID。您可以通过eci ps命令检查实例状态,直至实例状态变为Running,则表示部署成功。返回示例如下:

    CG_ID                      FIRST_IMAGE                     COMMAND   CREATED                     STATUS    PUBLIC_IP        NAME     
    eci-2zeedp8bxor356b7****   wordpress:4.9.8-php5.6-apache             2023-02-17T16:39:51+08:00   Running   101.200.XX.XX    wordpress
    eci-2zecsa60voctfzr2****   mysql:5.7                                 2023-02-17T16:33:22+08:00   Running   101.200.XX.XX    mysql

    此时可以看到WordPress实例的公网IP,本示例中为101.200.XX.XX。在浏览器中输入http://100.100.XX.XX即可访问WordPress。