Docker练习场实践

Docker练习场

官方链接:https://tianchi.aliyun.com/competition/entrance/231759/tab/226

基础环境

阿里云 centos 7.0

1. 环境安装

# dcoker 安装
yum install docker -y
# 查看 docker信息
docker info
# 拉取docker样例并运行
docker pull hello-world
docker run hello-world

2. 按照官网创建docker镜像仓库

3. 创建样例代码

在这里插入图片描述
创建如下四个文件:
Dockerfile,hello.py,requirements.txt,run.sh
** 其中py文件名可以修改,具体内容如下
Dockerfile:

# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/)
ADD . /

## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交>后才能运行)
WORKDIR /

## Install Requirements(requirements.txt包含python包的版本)
## 这里使用清华镜像加速安装
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

hello.py:

#!/usr/bin/env python
# coding: utf-8
import pandas as pd
import numpy as np
import json
#num_list.csv文件在天池给的基础镜像中,已在tcdata文件夹中包含
#这里为了方便测试程序,自己编写一个num_list.csv文件,实际提交结果时,用不到此文件
# data=np.random.randint(1,100,200)
data = pd.read_csv('/tcdata/num_list.csv',header = None)

# 第一题
result_1 = "Hello world"
# 第二题
result_2 = 0
for i,num in enumerate(data[0]):
    result_2 += num
# 第三题
data.sort_values(by=0, ascending=False, inplace=True)
result_3 = data[0][:10]
result_3 = list(result_3)
result = {
    "Q1" : result_1,
    "Q2" : result_2,
    "Q3" : result_3
}
with open('result.json', 'w', encoding='utf-8') as f:
    json.dump(result, f)

requirements.txt
该文件可以通过pipreqs生成

pandas==2.0.3
numpy==1.18.2

run.sh:

#!/bin/sh
CURDIR="`dirname $0`"
echo $CURDIR
cd $CURDIR
python hello.py

4. 创建docker镜像并推送

# 需要登陆才能创建与推送
sudo docker login --username=账号 docker镜像仓库公网地址
docker build -t docker镜像仓库:版本号(字母+数字) .
docker push docker镜像仓库:版本号

5.提交docker镜像

在这里插入图片描述
点击配置路径
在这里插入图片描述
镜像路径填写刚刚创建的 docker镜像仓库:版本号

6.等待任务完成

会有邮件通知
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值