Docker练习记录

很早之前就想了解docker这个东西了,这次通过阿里云的一个新人练习体会到了docker的作用,收获很大,虽然只是很简单的一个入门= =!练习地址:https://tianchi.aliyun.com/competition/entrance/231759/information
非常感谢讨论区的大佬的详细解析,在此仅做一个一个记录方便后续回忆!
一、安装Docker环境
sudo apt install docker.io(验证安装是否成功:docker info)
二、开通阿里云容器镜像服务
按照官方步骤,一步一步搭建即可。
1)在选择代码源时使用的是本地仓库。
2)在构建镜像并推送时,采用的方式是在服务器上直接操作。

三、代码构建过程
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)新建run.sh文件
python sum.py
4)新建sum.py文件

import csv
import json
print("Hello world")
with  open('./tcdata/num_list.csv') as f:
row = csv.reader(f, delimiter=',')
height = []
for r in row:

	height.append(int(r[0]))
s = sum(height)
height_down = sorted(height, reverse=True)
height_down_10 = []
for i in  range(10):

	height_down_10.append(height_down[i])
jsondata = json.dumps({'Q1': 'Hello world', 'Q2': s, 'Q3': height_down_10},
sort_keys=True, indent=4, separators=(',', ': '))
fjson = open('result.json', 'w')
fjson.write(jsondata)
fjson.close()

5)在tianchi_submit_demo目录下新建tcdata目录,并在tcdata目录下新建num_list.csv文件(本地利用Python测试用)
打开命令行,进入tianchi_submit_demo目录,用Python运行如下命令行,即会输出Hello world,并生成result.json文件。这一步的主要作用是验证代码的正确性,不是非必须的。

python sum.py

6)打开命令行,进入tianchi_submit_demo目录,在此目录下构建Dockerfile:

docker build -t registry.cn-shenzhen.aliyuncs.com/[你的命名空间]/[你的仓库]:[版本号] .

千万注意最后要一个 . 表示当前路径,否则报错)
7)上传构建好的镜像

docker push -t registry.cn-shenzhen.aliyuncs.com/[你的命名空间]/[你的仓库]:[版本号]

8)提交镜像
在提交结果处提交镜像,配置路径:
镜像路径为:

registry.cn-shenzhen.aliyuncs.com/[你的命名空间]/[你的仓库]:[版本号]

注意别忘了版本号!
在这里插入图片描述
以上的流程归纳一下就是:

  • 安装docker
  • 从阿里云那里搞来需要的镜像(运行环境)(pull)
  • 搞到环境之后,写程序(主程序,运行脚本,配置环境),将配置文件和项目程序写在一个目录,如果涉及文件什么的(好像是说要通过挂载的形式,所以我们只要写出正确的路径,不用传文件)
  • 写完了当然就是build 镜像(这个说法不知道对不对)
  • build完了就传到远程的镜像上去,然后别人就可以用了
    (push)

最后做个总结吧:
以我的理解,docker就是一个装环境的容器,我们将所需要的环境pull进来(比如来自阿里云镜像),然后我们可以将整个项目打包,这个打包相比一般的打包,它还搭载了他所需的环境,从而避免了项目复现的一些问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值