介绍在什么场景下应该使用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-apache和mysql:5.7。
部署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
获取数据库的内网IP地址,以下用到了
jq
命令,如果本地没有jq
命令,请先安装它。$ eci inspect eci-uf62qbyl7x82kbfp11fu | jq -r .ContainerGroups[0].IntranetIp 192.168.0.28
部署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
现在浏览器中输入
http://100.100.100.2
,即可访问网站。