全部产品

使用场景

更新时间:2020-10-23 18:18:25

介绍在什么场景下应该使用ECI命令行客户端。

对于需要构建集群服务的用户而言,我们推荐通过ACK/ASK来使用ECI,这能充分发挥ECI的优势。对于较小体量用户,或者您只需要部署几个单机应用,则ECI-Client将是更快速和便捷的途径,尤其是,如果您熟悉Docker命令行,则可以零成本开始使用ECI,因为ECI-Client提供了与Docker相同的语法来管理ECI实例。本文介绍几个典型的使用场景。

测试ECI应用

如果你正在基于ECI开发自己的应用,那你可能需要频繁的部署ECI,以便验证自己的应用是否符合预期,这时使用ECI-Client来部署实例将是不二之选。

假设我们现在构建了一个镜像centos:8.1.1911,并已经上传到了Docker镜像仓库,现在我们要测试它是否按预期工作,只需要一条命令就可以部署到ECI。

eci run -w 5 centos:8.1.1911 sleep 3600

实例启动完成后可以登录到实例容器中,假设实例ID为eci-uf60grb03kz2nlm23j19

eci exec -ti eci-uf60grb03kz2nlm23j19 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/tensorflow:1.0 \
python models/tutorials/image/imagenet/classify_image.py

如上,因为tensorflow程序会依赖GPU,所以我们通过--type选项为实例指定一个GPU类型的规格,--gpu用于为实例中的容器分配GPU,--volume选项用于挂载一个云盘到实例中,用于保存程序的结果数据。

该镜像体积较大,ECI需要一些时间来下载镜像,通过执行以下命令查看实例的ID,名字、运行状态等。

eci ps

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

eci logs eci-uf60grb03kz2nlm23j19

部署个人网站

现在我们使用ECI-Client部署一个稍微复杂的应用,一个Wordpress网站,且这个网站依赖一个MySQL数据库,我们在Docker官方镜像仓库中找到这两个相应的镜像wordpress:4.9.8-php5.6-apachemysql:5.7

  1. 部署MySQL数据库,并指定它的根密码为root,命令执行成功后将输出实例ID。

    $ eci run -w 5 --name mysql -e MYSQL_ROOT_PASSWORD=root -tid mysql:5.7
    eci-uf62qbyl7x82kbfp11fu

    部署以后检查实例的状态,直到它的状态变为Running

    $ eci ps
    CG_ID                      FIRST_IMAGE   COMMAND   CREATED                STATUS       PUBLIC_IP   NAME
    eci-uf62qbyl7x82kbfp11fu   mysql:5.7               2020-10-21T08:50:08Z   Running                  mysql

  2. 获取数据库的内网IP地址,以下用到了jq命令,如果本地没有jq命令,请先安装它。

    $ eci inspect eci-uf62qbyl7x82kbfp11fu | jq -r .ContainerGroups[0].IntranetIp
    192.168.0.28

  3. 部署Wordpress,我们需要通过环境变量-e告诉它数据库的地址、用户名和密码,最后我们通过-w选项为网站分配一个公网IP并指定它的带宽为5MB。命令执行成功后将输出实例的ID。

    $ eci run --name wordpress \
    -e WORDPRESS_DB_HOST=192.168.0.28 \
    -e WORDPRESS_DB_USER=root \
    -e WORDPRESS_DB_PASSWORD=root \
    -w 5 \
    -tid wordpress:4.9.8-php5.6-apache
    eci-uf672fxow2lxcp4n8pj1

    等待它的状态变为Running,此时我们可以看到实例的公网IP,本示例中为100.100.100.2

    $ eci ps
    CG_ID                      FIRST_IMAGE                     COMMAND   CREATED                STATUS    PUBLIC_IP       NAME
    eci-uf672fxow2lxcp4n8pj1   wordpress:4.9.8-php5.6-apache             2020-10-21T09:27:19Z   Running   100.100.100.2   wordpress
    eci-uf62qbyl7x82kbfp11fu   mysql:5.7                                 2020-10-21T08:50:08Z   Running                   mysql

  4. 现在浏览器中输入http://100.100.100.2,即可访问网站。