阿里天池【入门】Docker练习场 满分操作

您所在的位置:网站首页 阿里天池入门 阿里天池【入门】Docker练习场 满分操作

阿里天池【入门】Docker练习场 满分操作

2023-09-21 12:27| 来源: 网络整理| 查看: 265

 

1. 任务描述

本题目主要是为了练习docker的基本操作, 题目描述如下:

2. 开始干活

首先分析一下要准备的东西:

docker环境镜像仓库需要pull的镜像文件 Dockerfile程序代码(py文件)run.sh 2.1 搭建docker环境

下面开始准备,本文使用的docker环境搭建在centos 7服务器上,其他操作系统命令可能有所不同

搭建docker环境可以参考官方链接

2.2 创建阿里云容器镜像仓库

申请阿里云容器镜像服务(免费),并创建仓库,创建过程中根据提示选择本地仓库设置命名空间等即可,创建完成后进入主页面:

注意下图中的公网地址,shanghai,命名空间,仓库名,使用时结合自己的进行替换即可

然后开始构建镜像并推送,将天池准备的基础python镜像拉入,在linux终端输入

docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3 2.3 准备题目所需的文件

首先创建一个文件夹命名为:tianchi_submit_demo(可以根据需要命名)

下面在此文件夹下创建如下三个文件:

Dockerfile文件 # Base Images ## 从天池基础镜像构建 FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3 ## 把当前文件夹里的文件构建到镜像的根目录下 ADD . / ## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行) WORKDIR / ## 镜像启动后统一执行 sh run.sh CMD ["sh", "run.sh"] run.sh(注意run.sh需要有可执行的权限) python test.py test.py(仅供参考) 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文件,随便输入几个正整数,用于在本地测试,

12 213 413 55 12 12 44 5 1 8 987 3 3

进入tianchi_submit_demo目录,输入

./run.sh

生成result.json文件,检查结果是否正确,下面是例子的结果,发现没有问题,准备上传文件

{ "Q1": "Hello world", "Q2": 1768, "Q3": [ 987, 413, 213, 55, 44, 12, 12, 12, 8, 5 ] } 2.4 提交

进入tianchi_submit_demo目录,以下操作都在此目录下进行

登录阿里云Docker Registry(详细的操作在容器镜像服务管理页面都有介绍) docker login --username=你的用户名 registry.cn-shanghai.aliyuncs.com

输入密码...

登录成功

开始构建Dockerfile: docker build -t registry.cn-shenzhen.aliyuncs.com/命名空间/你的仓库:版本号 . #注意这里有 . # 官方给的例子是 docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 . 把test_for_tianchi和test_for_tichisubmit替换为你的就行,可以参考最开始截图中的公网地址

构建成功

上传镜像 docker push registry.cn-shanghai.aliyuncs.com/命名空间/你的仓库:版本号 # 这里没有 . # 第一次push比较慢,耐心等待

上传成功

提交结果等待出分

镜像路径就是

registry.cn-shenzhen.aliyuncs.com/命名空间/你的仓库:版本号 # 没有 . 等待运行结果,查看成绩,大功告成

第一次上传仓库的密码输错了有点尴尬...

记录到此结束!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3