小白入门Docker——Docker提交天池代码超详细教程(Windows10 家庭版)

编程入门 行业动态 更新时间:2024-10-22 18:45:25

小白入门Docker——Docker提交<a href=https://www.elefans.com/category/jswz/34/1765651.html style=天池代码超详细教程(Windows10 家庭版)"/>

小白入门Docker——Docker提交天池代码超详细教程(Windows10 家庭版)

文章目录

  • 1、安装适用于 Linux 的 Windows 子系统
  • 2、安装配置Docker
  • 3、开通容器镜像服务
  • 4、制作测试Demo
  • 5、推送提交镜像
  • 6、删除镜像

费了九牛二虎之力,终于配置好了Docker,在天池Docker练习赛中实现满分。接下来我总结下这过程中参考过的资料。
实现环境:Windows10 家庭版

1、安装适用于 Linux 的 Windows 子系统

附上Microsoft官方安装WSL2的教程,我实现的是里面的手动安装。跳到步骤1开始跟着敲。

进入电脑的控制面板-程序-程序与功能,然后点启用或关闭windows功能
勾上这两个

接着继续跟着官方教程来,其中在Windows左下角的搜索框中搜索Powershell,点击管理员身份运行,就可以对着复制代码进去回车执行啦
然后对着教程来到第六步,我选了这个版本

正常来说,安装完Ubuntu,正常启动创建账户密码后这一步算是完成了。但是!!!俺遇到了一个神坑,网上一直找不到解决方法。
如果你遇到了Ubuntu创建用户名时报了不存在具有提供的名称的分布的错,试了各种用户名都还是报这样的错,别慌!


打开目录,卸载Ubuntu,等它卸载完后,重启。

重启后打开Mincrosoft Store,(桌面找不到的可以左下角搜索栏搜出来),进去后点击这个下载图标
在已做好安装准备后找到之前下载过的Ubantu,点击安装。
安装后正常启动,重新弹出创建用户名的界面。这时,又出现输入任何用户名都弹出“参考的对象类型不支持尝试的操作”的报错信息。别慌!按着这篇博客的长期解决方案来。
注意这一步记得先cd到你Nolsp.exe存放的目录
这样操作一通后,居然可以成功创建用户名和密码了,感动!具体原因小白我还不太清楚,欢迎大佬在评论区指点迷津。

2、安装配置Docker

先进入安装Windows桌面版的官方网址注意,咱们是Windows10家庭版,得点这个
接着点这个
然后是这个,点完就开始下载啦。注意,安装Docker得确定你的WSL2配置好了

下载完,双击运行下载的installer,一路next就安装好了。
双击你的Docker Desktop图标,进到docker的界面,点右上角设置


可以看到WSL2已经被选上了

点Resources-WSL INTEGRATION,打开Ubuntu-20.04选项,再点击右下角的Apply&Restart,这样最主要的配置就好啦。有的教程建议配置个加速器,我没有配置的情况下感觉也挺快的,此步略过。这样就配置好docker了。

3、开通容器镜像服务

这里建议大家还是用阿里云比较好,比较是真的简单,按官方的教程来。从第二步开始跟着来
到看到公网网址这就大功告成啦

4、制作测试Demo

参考这篇教程,首先在本地新建一个demo文件夹,然后再在里面新建一个tcdata文件夹。
在tcdata中按赛题要求制作一个叫num_list的csv文件,赛题要求如下:

最没有难度的制作方法是新建一个excel,在一列中输入要求数据,再按另存为num_list.csv放入tcdata
然后在demo文件夹中新建一个hello_world.py,里面代码为:

#!/usr/bin/env python
# coding: utf-8
import pandas as pd
import numpy as np
import json
#data=np.random.randint(1,100,200)
#data=pd.DataFrame(data)
#data.to_csv("./tcdata/num_list.csv",index=False,header=False)
#data=pd.read_csv("/tcdata/num_list.csv",header=None)#天池python镜像默认包含此文件,自己测试用如下指令
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)

run一下这段代码看看有没有问题。
接着制作requirement.txt,先通过pip install pipreqs安装这个包,然后在该目录下的命令行中输入pipreqs . --encoding=utf8 --force即可在该目录中生成requirement.txt。里面的内容有:

打开文件后缀显示

右键-新建txt文档,把文件名改为run.sh,里面写入这些内容

#!/bin/sh
CURDIR="`dirname $0`" #获取此脚本所在目录
echo $CURDIR
cd $CURDIR #切换到该脚本所在目录
python hello_world.py

新建txt文档,文件名改为Dockerfile,里面写入:

# Base Images
## 从天池基础镜像构建
FROM registry-shanghai.aliyuncs/tcc-public/python:3## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/)
ADD . /## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /## Install Requirements(requirements.txt包含python包的版本)
## 这里使用清华镜像加速安装
RUN pip install -i  -r requirements.txt## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

至此,完成了demo的制作,效果如图

5、推送提交镜像

在上面的地址栏输入powershell,回车
进入这个界面
在powershell中依次输入以下语句:

## docker登陆:
docker login --username=你自己的用户名 registry-shanghai.aliyuncs

这句话其实就是阿里云镜像库中的这一句话,复制过来就好
然后在powershell中输入

docker build -t 公网地址/版本号 .

公网地址就是你的阿里云镜像库显示的那个。接着可用这两句话验证你的镜像是否正常运行,未报错则ok

CPU镜像:docker run 公网地址/版本号 sh run.sh
GPU镜像:nvidia-docker run 公网地址/版本号 sh run.sh

最后,推送镜像:

docker push 公网地址/版本号 

然后,进到提交界面,点配置路径
镜像路径填你的公网地址,用户名和密码都是你的镜像库账户的用户名和密码。
提交后稍等片刻就可以在我的成绩中看到分数啦。

6、删除镜像

一个镜像在本地占的空间可不小,想要删除镜像的话先进到docker desktop,点击Images,选中要删除的镜像,点击remove
如果报错,则记住这个神秘代号
回到刚刚demo文件夹中打开的powershell,依次输入:

docker stop 神秘代号
docker rm 神秘代号

这样镜像就被删除啦。

小白第一次接触docker,折腾了5个多小时,希望对大家有所帮助。

更多推荐

小白入门Docker——Docker提交天池代码超详细教程(Windows10 家庭版)

本文发布于:2024-03-12 01:10:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730363.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:天池   家庭版   入门   代码   教程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!