阿里云天池新人赛——docker练习场比赛心得

摘要:
因为在阿里巴巴的淘宝直播产品鉴定大赛中,需要使用Docker提交结果,所以以前从未使用过。阿里刚刚提供了Docker新秀比赛,并借此机会学习。既然您正在学习Docker,您必须首先了解Docker是什么:Docker是一个开源应用程序容器引擎,它允许开发人员将他们的应用程序打包并依赖于一个可移植的容器,然后将其发布到任何流行的Linux机器或Windows机器。它还可以实现虚拟化。容器完全使用沙盒机制,而不是

由于在阿里的淘宝商品直播识别大赛中提交结果需要用到docker,以前也没有用过。正好阿里提供了docker的新人赛,借此机会学习一下。

既然学习docker,首先就要了解docker是什么:

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口  ——摘自《百度百科》

  这里涉及到一些概念。容器:是一个视图隔离、资源可限制、独立文件系统的进程集合。什么叫视图隔离?我们都知道,一般操作系统的文件系统,各个应用之间都是互相可见的、可相互通信的。而视图隔离就使得进程和进程之间不会相互影响,它使得应用有自己独立的主机名,并可以限制其他应用对自己的可见性。资源可限制指的是我们可以控制资源的使用率,如内存大小,CPU个数等等。镜像:运行容器所需要的的文件集合。通常情况下我们会使用dockerfile来描述镜像构建的步骤。后面会具体介绍dockerfile的用法

一、环境准备

windows安装地址:https://docs.docker.com/docker-for-windows/install/

Linux采用如下命令安装即可:

$ sudo apt-get update
$ sudo apt install docker.io

二、开通阿里云容器镜像服务

(由于是在阿里云的赛场打比赛,人家肯定是要推广自己的产品的)

打开如下网址开通阿里云容器镜像服务即可:https://www.aliyun.com/product/acr?,开通完成后进行一些基本的配置就可以使用啦。

三、构建镜像并推送

在开始构建镜像之前,先附上赛题(其实题目根本不重要,都是最基本的语法,重点还是了解docker的基本使用)

阿里云天池新人赛——docker练习场比赛心得第1张

可以看到任务有三个,而输出要求为生成json文件。所以测试时进行如下操作。

1)首先在本地新建一个空的文件夹,命名随意(在这里我是用阿里的官方文档示例名字tianchi_submit_demo)

2)新建dockerfile文件

# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . / 
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

3)在文件夹新建一个python文件,命名随意(我的命名为test.py),可以先简单写一个print函数测试一下。

python test.py

4)新建run.sh文件,文件内容即为

python test.py

用来通过命令启动该程序

5)在tianchi_submit_demo目录下新建tcdata目录,并在tcdata目录下新建num_list.csv文件(本地测试用)

6)修改test.py为题目要求输入输出

 1 import csv
 2 import json
 3 
 4 print("Hello world")
 5 with open('./tcdata/num_list.csv') as f:
 6     row = csv.reader(f, delimiter=',')
 7 
 8     all_num = []
 9 
10     for r in row:
11         all_num.append(int(r[0]))
12 
13     print(len(all_num))
14     s = sum(all_num)
15 
16     sort_result = sorted(all_num, reverse=True)
17 
18     top_10 = []
19 
20     for i in range(10):
21         top_10.append(sort_result[i])
22 
23     jsondata = json.dumps({'Q1': 'Hello world', 'Q2': s, 'Q3': top_10},sort_keys=True, indent=4, separators=(',', ': '))
24     fjson = open('result.json', 'w')
25     fjson.write(jsondata)
26     fjson.close()

7)运行test.py,确定生成json文件且文件内容正确

8)登录阿里云docker服务

阿里云天池新人赛——docker练习场比赛心得第2张

 注意username换成自己的阿里云用户名

9)打开cmd,进入tianchi_submit_demo目录,键入如下命令构建dockerfile

docker build -t registry.cn-shanghai.aliyuncs.com/dock-l/first-learning:1.1 .

注意最后版本号后面还有个“空格+.”!!!构建成功后会显示如下界面

阿里云天池新人赛——docker练习场比赛心得第3张

10)键入如下命令上传构建好的镜像,注意千万不要忘记版本号

docker push registry.cn-shanghai.aliyuncs.com/dock-l/first-learning:1.1

上传成功后显示如下结果

阿里云天池新人赛——docker练习场比赛心得第4张

11)最后回到赛场提交就可以啦

阿里云天池新人赛——docker练习场比赛心得第5张

12)等待结果,完美结束

阿里云天池新人赛——docker练习场比赛心得第6张

免责声明:文章转载自《阿里云天池新人赛——docker练习场比赛心得》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇轻松玩转windows之wamp开发环境部署Git在已有的分支上新建个人分支开发下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【笔记】Docker部署Odoo

一,制作一个自己的odoo镜像odoo:yto 1,下载一个odoo10的镜像 docker pull odoo:10.0 2,按照自己的意愿修改里面的内容 docker run -it -u root --name odoo-yto odoo:10.0 /bin/bash  安装必要的软件并用vim修改内容 apt-get update apt-get...

阿里云服务器安全设置

1、开启云盾所有服务 2、通过防火墙策略限制对外扫描行为 请您根据您的服务器操作系统,下载对应的脚本运行,运行后您的防火墙策略会封禁对外发包的行为,确保您的主机不会再出现恶意发包的情况,为您进行后续数据备份操作提供足够的时间。 Window2003的批处理文件下载地址:http://oss.aliyuncs.com/aliyunecs/windows20...

dcoker搭建私有仓库

一、docker私有仓库搭建 [root@szx ~]# docker pull registry # 拉取私有仓库镜像 [root@szx ~]# docker run -id --name=registry -p 5000:5000 registry # 构建容器并启动 [root@szx ~]# vim /etc/docker/daem...

docker安装kodbox网盘

1、拉取kodbox镜像docker pull kodbox 2、创建mysql数据库及用户 mysql> create database kodbox default character set utf8 collate utf8_bin; mysql> grant all privileges on kodbox.* to kodbox@'...

性能压测工具选型对比

本文是《Performance Test Together》(简称PTT)系列专题分享的第二期,该专题将从性能压测的设计、实现、执行、监控、问题定位和分析、应用场景等多个纬度对性能压测的全过程进行拆解,以帮助大家构建完整的性能压测的理论体系,并提供有例可依的实战。 该系列专题分享由阿里巴巴 PTS 团队出品,欢迎在文末处加入性能压测交流群,参与该系列的线上...

使用Xftp&Xshell 工具进行文件上传与运行webapi

前言: 由于我们平时在开发微服务的时候,都是在windows 或者mac上开发的,开完完成一些功能,需要发布到服务器上进行提测。今天,我主要介绍两个工具来说明一下如何上传以及把程序跑起来。 正文: 准备工作: 1、Xftp 6工具 ,下载地址:https://www.netsarang.com/zh/xftp/ 2、Xshell 6 工具,下载地址:htt...