使用 Docker 镜像构建 App

本文介绍了如何使用Docker镜像在阿里云BatchCompute上创建和更新App。首先,通过Dockfile或容器制作Docker镜像,并在本地调试确保其正常运行。接着,将镜像推送到OSS镜像仓库,然后通过控制台或SDK创建App。当需要更新App时,只需更新Docker镜像的Tag并应用到App信息中。该教程适合需要在BatchCompute上部署软件或算法的开发者。
摘要由CSDN通过智能技术生成

本文来自于【阿里云官方镜像站:https://developer.aliyun.com/mirror/?utm_content=g_1000307095 】

原文链接:https://developer.aliyun.com/article/762648?spm=a2c6h.12873581.0.0.70212784gaDzaG

简介: 本文主要为大将讲解如何使用 Docker 镜像创建 App 以及如何更新镜像。

一、准备 App 的 Docker 镜像

1. 制作 Docker 镜像

根据自己的需求,用户可以使用官方镜像仓库中的镜像作为基础镜像,安装需要的软件或算法,制作成 Docker 镜像,完成运行环境的定制;制作镜像有两种方法:

使用 Dockfile 制作镜像

使用容器快速制作镜像

具体制作方法可参考文章 Docker 镜像制作。

建议:在制作 Docker 镜像时,最好带上 Tag,后续版本有更新时,只需要更新 Tag 即可。

2. 本地调试Docker镜像

Docker 镜像制作完成以后,可以参考 Docker 本地调试 进行本地调试,确保 Docker 镜像在 BatchCompute 的环境下可以正常使用。

3. 推送到镜像仓库

可以将制作好的 Docker 镜像推送到 OSS 的镜像仓库。具体方法请参考 Docker镜像上传到 OSS 。

二、创建 App

BatchCompute提供了 API、SDK、控制台等三种方式创建 App,下面以控制台和 Python SDK 为例,分别介绍如何使用 Docker 镜像创建 App。

1. 使用控制台创建 App

假如 Docker 镜像被推送到 OSS 镜像仓库的路径为oss://demo-bucket/dockers/,镜像名称为localhost:5000/demodockerimage:0.1。

如上图所示,在创建 App 时,选择镜像类型为 Docker,填写 Docker 镜像的名称,以及 OSS Registry 的路径。

2. 使用 SDK 创建 App

使用 Python SDK 创建 App 时,参考如下的形式:

#encoding=utf-8import sys

from batchcompute import Client, ClientError

from batchcompute import CN_BEIJING as REGION

from batchcompute.resources import (

JobDescription, TaskDescription, DAG, AutoCluster, GroupDescription, ClusterDescription, AppDescription

)

ACCESS_KEY_ID='xxxx' # 填写您的 ACCESS_KEY_ID

ACCESS_KEY_SECRET='xxxx' # 填写您的 ACCESS_KEY_SECRETdef main():

try:

client = Client(REGION, ACCESS_KEY_ID, ACCESS_KEY_SECRET)

app_desc = {

"Name":"Docker-app-demo",

"Daemonize":False,

"Docker":{

"Image":"localhost:5000/demodockerimage:0.1",

"RegistryOSSPath":"oss://demo-bucket/dockers/"

},

"CommandLine":"python test.py",

#其他参数这里不详细展示

}

appName = client.create_app(app_desc).Name

print('App created: %s' % appName)

except ClientError, e:

print (e.get_status_code(), e.get_code(), e.get_requestid(), e.get_msg())

if __name__ == '__main__':

sys.exit(main())

如上面的实例代码所示,在AppDescription中填写 Docker 信息的Image和RegistryOSSPath。

三、Docker 镜像更新

假如 App 中使用的 ISV 提供的软件或算法有更新,您只需要更新 Docker 镜像,并用 Tag 标识版本。然后更新 App 信息中的 Docker 镜像名称就可以。

1. 使用控制台更新

如上图所示,在 App 列表中找到需要更新的 App,点击修改按钮进入 App 的修改页面。

如上图所示,在修改页面,修改 App 的 Docker 镜像名称后,点击提交即可完成 App 的更新。

2. 使用 SDK 更新

使用 Python SDK 来更新 App 的 Docker 信息可参考如下示例:

#encoding=utf-8

import sys

from batchcompute import Client, ClientError

from batchcompute import CN_BEIJING as REGION

from batchcompute.resources import (

JobDescription, TaskDescription, DAG, AutoCluster, GroupDescription, ClusterDescription, AppDescription

)

ACCESS_KEY_ID='xxxx' # 填写您的 ACCESS_KEY_ID

ACCESS_KEY_SECRET='xxxx' # 填写您的 ACCESS_KEY_SECRET

def main():

try:

client = Client(REGION, ACCESS_KEY_ID, ACCESS_KEY_SECRET)

app_desc = {

"Name":"Docker-app-demo",

"Daemonize":False,

"Docker":{

"Image":"localhost:5000/demodockerimage:0.2",

"RegistryOSSPath":"oss://demo-bucket/dockers/"

},

"CommandLine":"python test.py",

"EnvVars": {}

}

res = client.modify_app("Docker-app-demo", app_desc)

print res

except ClientError, e:

print (e.get_status_code(), e.get_code(), e.get_requestid(), e.get_msg())

if __name__ == '__main__':

sys.exit(main())

对于简单的修改 Docker 版本号的情况,推荐使用控制台,操作更简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值