本文介绍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官网镜像仓库:
WordPress:wordpress:4.9.8-php5.6-apache
MySQL:mysql:5.7
部署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
获取数据库的内网IP地址。
以下使用
jq
命令,如果本地没有jq
命令,请先安装。eci inspect eci-2zecsa60voctfzr2**** | jq -r .ContainerGroups[0].IntranetIp
预期返回:
172.16.XX.XX
部署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。