【天池时间序列】Docker入门比赛

【天池时间序列】Docker入门比赛

1 Docker 简介:
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
web应用的自动化打包和发布;
自动化测试和持续集成、发布;
在服务型环境中部署和调整数据库或其他的后台应用;
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
因为Docker强大的功能,越来越多的场景下,需要我们使用Docker部署和发布我们的代码。这篇学习笔记是参考群里同学的链接:https://tianchi.aliyun.com/forum/postDetail?postId=175129,在自己的Ubuntu的系统上实现的。
2 本地安装Docker
ubutun安装:
这里以阿里云ECS(ubutun)下安装docker为例。命令行安装:
sudo apt install docker.io
验证:
docker info
3 创建阿里云镜像仓库
阿里云容器服务地址为:https://cr.console.aliyun.com
注册开通后产品页面如下:
在这里插入图片描述
(1)创建命名空间
切换标签页到命名空间,创建地址唯一的命名空间
在这里插入图片描述
(2)创建镜像仓库
根据大赛要求选择对应的地域,其他的按照自己需求选择或填写
在这里插入图片描述
(3)选择本地仓库,不建议其他选项,完成创建
在这里插入图片描述
(4)完成本地登录
登录命令如下,注意更改成自己的信息:
#your_registry_url E.g registry.cn-shanghai.aliyuncs.com/xxxx/xxxx
sudo docker login --username your_username --password your_password your_registry_url
4 构建镜像并推送
4.1 编写文件
4.1.1读题
参与者可分阶段提交容器镜像完成以下3个任务(分数依次占 30/30/40),根据评分系统的分数返回验证任务的完成情况。
输出Hello world
计算 /tcdata/num_list.csv中一列数字的总和
在/tcdata/num_list.csv文件中寻找最大的10个数,从大到小生成一个List
num_list.csv文件中只有一列不为负的整数,其中存在重复值,示例如下:
生成入口脚本 run.sh,放置于镜像工作目录。运行后生成结果result.json放置于工作目录(与run.sh同目录),评分系统将根据result.json进行打分。json文件如下所示:
{
“Q1”:“Hello world”,
“Q2”:sum值,
“Q3”:[top10_list]
}
4.1.2操作
新建一个文件夹(例如tianchi_submit)用于存放这次任务镜像所需的文件,文件夹中内容示例如下:
在这里插入图片描述

4.2.构建镜像并推送(Ubuntu下)
在tianchi_time目录下执行如下命令:
docker build -t registry.cn-shenzhen.aliyuncs.com/xxxxxx/submit_for_tianchi:0.1 .
注意:registry.~~~是上面创建仓库的公网地址,用自己仓库地址替换。地址后面的:0.0.3为自己指定的版本号,用于区分每次build的镜像。最后的.是构建镜像的路径,不可以省掉。
构建完成后可先验证是否正常运行,正常运行后再进行推送。
CPU镜像:
docker run registry.cn-shenzhen.aliyuncs.com/xxxxxx/submit_for_tianchi:0.1 sh run.sh
GPU镜像:
nvidia-docker run your_image sh run.sh
注意:这里使用CPU镜像的命令即可,可能会报这样的错误:
FileNotFoundError: [Errno 2] File b’/tcdata/num_list.csv’ does not exist: b’/tcdata/num_list.csv’
只是因为我们自己创建的tcdata文件夹里没有竞赛数据,num_list.csv文件在天池给的基础镜像中,已在tcdata文件夹中包含,所以可以忽略,直接进入下一步。
推送到镜像仓库
docker push registry.cn-shenzhen.aliyuncs.com/xxxxxx/submit_for_tianchi:0.1
如果这步出错,可能你没有登录,按照仓库里描述操作登录即可。
由于镜像第一次推送会比较耗时。推送完成后,在阿里云账户的镜像版本中就可以看到该镜像。
在这里插入图片描述
5 提交验证运行结果
【入门】Docker练习场页面的左侧【提交结果】中填写推送的镜像路径、用户名和密码,即可提交。根据【我的成绩】中的分数和日志可以查看运行情况
镜像路径:registry.cn-shenzhen.aliyuncs.com/test-for-tianchi-time/test-for-submit:0.1
在这里插入图片描述

注意:
(1)首先Docker练习场需要报名参赛;
(2)提交结果的时候需要等一定的时间才能出成绩,成绩出来之后会有邮件通知;
(3)如果有错误,可以在我的成绩里点查看日志浏览具体报错信息。
6 我的成绩
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值