写在前头:因为要打比赛,结果提交操作肯定要会的撒。然而,这东西搞了我几天,终于是提交成功了。为自己记录下这个时刻。 ————墨菲定律dj
一、安装环境(win10家庭版下)
1、安装虚拟机Hyper-V
第一步:新建一个记事本,复制以下代码到记事本中。保存,然后重命名为Hyper-V.cmd。双击打开。程序自动运行,输入Y,重启进行配置安装。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
第二步:检查是否安装成功——控制面板>程序>程序和功能>启动或关闭windows功能(左侧),看到Hyper-V存在,且打勾了。如下图。
2、安装WSL2
(Subsystem for Linux)
微软的官方教程
第一步:以
管理员身份
启动windows powershell(左下角搜索可得)
命令行输入:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
第二步:检查是否可以安装WSL2——要求必须大于18362.1049 或者18363.1049。Windows 键+ R,输入winver可以查看版本。
第三步:powershell 里输入如下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
第四步:重启电脑。
第五步:在官方教程里找到wsl 2的下载地址,并选择相应的下载版本(win10家庭版我选的是x64)然后安装。
第六步:安装后打开powershell,输入如下命令:
wsl --set-default-version 2
正常返回的是一句话:xxxx,请访问http:xxxxx。
3、安装ubutun
(16到20版本应该都行,我是18.04LTS)
第一步:打开微软商店 microsoft store
第二步:搜索ubutun,并下载。
(其他方式下载也行)
4、安装docker(win版本)
第一步:官网下载安装包
https://hub.docker.com/editions/community/docker-ce-desktop-windows/
第二步:正常安装即可。然后创建账号登陆啥的。
最重要的一步:
①点击右上角设置(红圈里必须默认已选wsl2)
②ubutun必须打开,并点右下角的应用。
至此,所有需要安装的都搞定了,成功一半了。
二、开通容器镜像
https://tianchi.aliyun.com/competition/entrance/231759/tab/226
这个具体看阿里云官方教程,讲的很详细,需要注意的一点是:
如果最后提交出现了如下情况:
则需要把仓库权限改为——公开!!
三、制作任务(略)
这个可以参考该比赛的论坛,主要包括4个文件:
具体每个文件是什么,可以参考官方教程,除了hell0_word.py是本次入门赛需要自己敲的,其他的都可以在官网复制就好了。我说明一下requirements.txt怎么生成的就好了。
①该文件夹下打开powershell,输入 pip install pipreqs。安装pipreqs库。
②输入命令pipreqs . –encoding=utf8 –force
四、提交(重要)
1、要提交的四个文件的文件夹目录下,点击文件,打开powershell,或者在路径直接输入powershell回车即可打开。
2、登录
docker login --username=xxxxxx registry.cn-shanghai.aliyuncs.com
# xxxxxx是要替换成你的阿里云账号名字,具体可以去看刚刚建立好的镜像仓库,
#点击管理,下面直接有这行代码。($ sudo 是linux系统命令,这里是windows)
# 输入密码,自己是看不见的哈!!!它不会在命令行显示出来的。
3、先pull一个镜像(我不确定,好像并不是必须的)
docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
4、build
docker build -t 公网地址/版本号 . # 注意版本号是自己随便命名的,如1.0,每次build要用不同的(应该是吧?);
#第二是版本号后面必须是 ”空格+点“
5、检验(非必须)
docker run 公网地址/版本号 sh run.sh # CPU镜像:
nvidia-docker run 公网地址/版本号 sh run.sh # GPU镜像:
# 如果代码正常,啥也不输出。
6、push
docker push 公网地址/版本号
代码如下(示例):
7、去比赛界面提交结果
镜像路径即自己的公网地址+版本号(不用空格和点了)
提交成功的表示:
大约几分钟后,收到邮件,即OK。
删除容器和镜像
镜像占的内存比较大的,且用docker软件一般都删不了。
一般直接在docker软件内可以删,如果删不了再看此方法。
1、先删容器,再删镜像
docker images ——> 查询镜像
docker ps -a 查询容器
2、先停止容器
docker stop 容器名称(查询到的)
docker rm 要删的容器名称
3、删镜像
docker rmi 要删的镜像
详细可参考这位博主:
https://blog.csdn.net/winy_lm/article/details/77980529?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161563686616780261928014%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161563686616780261928014&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2
all
first_rank_v2~rank_v29-2-77980529.pc_search_result_before_js&utm_term=docker%E6%97%A0%E6%B3%95%E7%A7%BB%E9%99%A4%E9%95%9C%E5%83%8F
总结自己卡壳的地方
1、安装ubutun的时候卡壳,打开ubutun总说找不到参考对象,最后是卸载了重启再重新装的就好了。若还不行,可以参考一下博客。
https://blog.csdn.net/weixin_45575229/article/details/113921047
另外,微软商店的不要装ubutun,要装ubutun16.04LTS或18.04或20,总之不要装啥数字也没有的那个,血的教训,卡了好几次。
2、docker安装成功的标志是打开软件,它左下角的鲸鱼是绿色的,如果是红色的说明虚拟机或者其他啥的没安装好。
3、提交文件—需要注意的是论坛里有些说把dockerfile文件里用清华镜像不能提交成功因为不能用pip,但我觉得应该是可以的。我第一次提交用了pip不可以,然后
仓库镜像改为了公开
就可以了,玄学。如果不行,就按官方的,删了再试。
4、最后前面讲的那个pull,官网也有提,不知道是不是必须要的。
总之,卡在提交这里很久了,最后靠的是:看论坛、看CSDN解决。
还有一种用IDEA提交的,后面试试。
参考了一些大佬论坛
后期bug
1、安装了IDEA,结果docker报错,找不到相关程序,裂开。应该是安装IDEA的时候改了环境变量导致的。
解决方法:把docker卸载了,重装。(简单粗暴)
2、尝试了第二种提交方法,可行。
第一步:下载idea,然后按照官网教程
https://tianchi.aliyun.com/competition/entrance/231759/tab/226
先配置好cloud toolkit,然后工具那里点alibaba的preferences,点docker,然后本地选tcp connection,验证一下连接。
注意
:
docker软件里设置的通用那里要选expose daemon…!!
(神坑!!!!)
后面申请key过程就按官网操作。
第二步:官网说的是ACR,但并没有。实际是选Deploy to Registry。
run之前要创建好镜像仓库的。
最后,点run就好了。