时间序列预测(1):Docker提交预测结果
文章目录
本文主要记录在阿里天池大数据竞赛中使用docker提交建模结果过程中的注意事项及一些关键步骤。
一、安装docker环境
docker目前提供了windows、mac、Linux等多个平台的安装包,mac和Linux下的安装相对比较容易,直接用命令行安装即可。
Linux下安装docker
利用daocloud提供的一键安装脚本安装docker
curl -sSL https://get.daocloud.io/docker | sh
卸载docker:
# centos
sudo yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine
# Ubuntu
sudo apt-get remove docker docker-engine
卸载Docker后,/var/lib/docker/目录下会保留原Docker的镜像,网络,存储卷等文件. 如果需要全新安装Docker,需要删除/var/lib/docker/目录
rm -fr /var/lib/docker/
Mac下安装docker
https://get.daocloud.io/docker-install/mac
Windows下安装docker
源生的windows版的docker响应比较慢,所以推荐在WSL2下的Ubuntu中安装Docker。具体操作步骤可以参考这篇文章:Win10 WSL2 安装Docker
注意:在WSL下安装docker,首先需要安装Linux子系统,目前Ubuntu的Linux子系统支持最好,所以暂时选择ubuntu 20.04作为win10上的子系统,安装时一定要将Linux子系统升级成v2版本,因为v1版本中安装的docker只是一个客户端,真正起作用的还是Windows下安装的docker。
二、开通阿里云docker镜像服务
首先在阿里云容器镜像服务
免费开通镜像托管,由于本次练习任务是由天池大数据竞赛提供的,所以需要将仓库地域选择上海。建议设置私有仓库,并一定牢记仓库密码,后续提交需要使用。
开通后进入镜像仓库
切换标签页到命名空间,创建地址唯一的命名空间
根据任务/比赛要求选择对应的地域(本次练习选择 上海),其他的按照自己需求选择或填写。
选择代码源为本地仓库,灵活度大,完成创建。
点击管理,可查看仓库的基本信息,以及登录、拉取、推送等简单操作的指南。
详情页如下,有基本的操作命令,仓库地址一般使用公网地址即可。
三、构建镜像并提交建模结果
1. 登录阿里云Docker Registry
$ sudo docker login --username=<阿里云账号> registry.cn-shanghai.aliyuncs.com
#用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
#您可以在访问凭证页面修改凭证密码。
2. 准备构建镜像所需代码
目录及文件结构如下:
├── tianchi_submit_demo
│ ├── Dockerfile
│ ├── hello_world.py
│ └── run.sh
Dockerfile
文件内容如下:
# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /
## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
hello_world.py
文件内容如下:
import json
#%%
hello = "Hello world"
print(hello)
# %%
with open('/tcdata/num_list.csv', 'r') as f:
r1 = f.readlines()
# %%
num_list = [int(r.replace('\n','')) for r in r1]
print(num_list)
# %%
sum_result = 0
for n in num_list:
sum_result = sum_result + n
print(sum_result)
# %%
sorted_list = sorted(num_list,reverse=True)
print(sorted_list[:10])
# %%
data = {"Q1":hello, "Q2":sum_result, "Q3":sorted_list[:10]}
data_dumps = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
print(data_dumps)
#%%
with open('./result.json', 'w') as f:
f.write(data_dumps)
run.sh
文件内容如下:
python hello_world.py
3. 构建并推送镜像
# 构建镜像
docker build -t registry.cn-shanghai.aliyuncs.com/datawhale_learning/test_for_tianchi_submit:1.0 .
# 推送镜像
docker push registry.cn-shanghai.aliyuncs.com/datawhale_learning/test_for_tianchi_submit:1.0
4. 提交验证结果
- 首先进入到竞赛【提交结果】页面,并配置镜像路径,与之前推送的镜像路径一致,即:
- 提交镜像,等待运行结果,即:
- 可以看到,一共有三次提交结果,三次的提交日志分别为:
【参考资料】