阿里云天池 Docker练习场(入门赛) 操作步骤
原创
©著作权归作者所有:来自51CTO博客作者小哈里1139的原创作品,请联系作者获取转载授权,否则将追究法律责任
problem

solution
1、搭建本地docker环境
Docker是什么
- Docker 属于Linux 容器的一种封装,提供简单易用的容器使用接口。
- docker只能安装在Linux环境下。
Linux的Docker安装
Windows下的Docker安装
2、搭建阿里云docker环境
首先进入阿里云容器镜像仓库,注册一个免费的个人版实例。
https://cr.console.aliyun.com/
进入实例以后,切换标签页到命名空间,创建地址唯一的命名空间。

然后切换到镜像仓库,创建一个镜像仓库。
注意根据赛题要求,选择地域为上海。下一步后选择本地仓库,完成创建。

创建后点击管理进入页面,即可获得公网地址。

3、在本地完成题目
创建一个项目文件夹(命名随意),在此文件夹下创建以下三个文件。


# Base Images
## 从天池基础镜像构建
FROM /tcc-public/python:3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
import csv
import json
sum = 0
temp = []
with open('./tcdata/num_list.csv') as f:
f_csv = csv.reader(f)
for row in f_csv:
sum += int(row[0])
temp.append(int(row[0]))
temp.sort(reverse=True)
if len(temp) > 10:
temp = temp[:10]
result = {
'Q1': 'Hello world',
'Q2': sum,
'Q3': temp
}
f = open('result.json', 'w', encoding='utf-8')
json.dump(result, f, indent=4, ensure_ascii=False)
import csv
import json
sum = 0
temp = []
with open('./tcdata/num_list.csv') as f:
f_csv = csv.reader(f)
for row in f_csv:
sum += int(row[0])
temp.append(int(row[0]))
temp.sort(reverse=True)
if len(temp) > 10:
temp=temp[:10]
result = {
'Q1':'Hello world',
'Q2':sum,
'Q3':temp,
}
f = open('result.json','w')
json.dump(result,f,indent=4,ensure_ascii=False)
- 本地测试
在当前目录创建tcdata文件夹,在其中创建num_list.csv文件
num_list.csv
执行命令./run.sh或 python3 test.py后可以获得以下文件
result.json
{
"Q1": "Hello world",
"Q2": 1768,
"Q3": [
987,
413,
213,
55,
44,
12,
12,
12,
8,
5
]
}4、 提交文件到阿里云
(1)进入刚才的项目文件夹,登录阿里云Docker Registry(账户密码为第2步创建时输入的)
docker login --username=你的用户名

(2)开始构建Dockerfile
docker build -t /命名空间/你的仓库:版本号 .
#注意这里有 .
#registry.xxxx其实就是公网地址,然后后面跟着( :版本号 . )

(3)上传docker镜像
docker push /命名空间/你的仓库:版本号
# 这里没有 .

5、 去比赛页面提交
镜像路径为
