本文介紹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。