一.安装Docker
根据前面的链接,先安装WSL2,开启Hyper-v,安装Docker Desktop
遇到的坑:
1.Windows功能里面没有Hyper-v(解决办法:升级win10系统到专业版)
2.安装WSL时候,重启出现 无法完成功能配置,撤销设置。(试过网上所有的办法,都无法解决。解决办法:右下角所有设置-windows设置-更新与安全 修复,等于重装C盘)
二.设置Docker Desktop
右击-setting
Resources里面其他不用动,最后的Ubuntu-20.04打开(如果安装的其他版本就会显示其他版本的ubuntu)。
在这里修改镜像源
三.
创建文件夹,必要文件Dockfile
,requirements.txt
,rush.sh
和一些运行用的.py文件或文件夹
记得打开文件扩展名,我们需要修改后缀
.py文件就不阐述了,就是你需要运行的文件。
三.建立镜像并推送到镜像仓库
1.编写requirements.txt文件
安装pipreqs
pip install pipreqs
- 打开 cmd 并cd 到要输出的目录 (如目录:docker_submit_demo)
- 激活安装了pipreqs的虚拟环境
conda activate pytorch
- 然后输入的命令
pipreqs ./ --encoding=utf-8
- 就可以看到生成了requirements.txt文件
补充:执行下面代码就会把项目用到的所有组件装上
pip3 install -r requirements.txt
2.编写run.sh
创建txt文件,复制下面内容,并修改名字为run.sh
#!/bin/sh CURDIR="`dirname $0`" #获取此脚本所在目录 echo $CURDIR cd $CURDIR #切换到该脚本所在目录 python hello_world.py
3.编写Dockerfile文件
创建txt文件,复制下面内容,名字修改为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"]
4.上传镜像至阿里云容器镜像仓库
在这之前完成阿里云容镜像仓库用户名和密码设置,并创建命名空间和镜像仓库,创建完仓库,进入仓库,可以找到公网地址,和登陆这个仓库的命令
## docker登陆(push镜像需要登陆,服务器地址为赛事要求的,这里以上海为例): docker login --username=你自己的用户名 registry.cn-shanghai.aliyuncs.com ## 不要忘记加. docker build -t 公网地址/版本号 . ## 构建完成后可先验证是否正常运行,正常运行后再进行推送。 CPU镜像:docker run 公网地址/版本号 sh run.sh GPU镜像:nvidia-docker run 公网地址/版本号 sh run.sh ## 推送到镜像仓库,如果出错,可能没登录 docker push 公网地址/版本号
版本号就任意发挥了,任意字母和数字组合
也可以打开Docker Desktop,查看本地的镜像,占用空间过大可以直接清理。
当然也可以在pycharm安装阿里云相关插件可以直接构建镜像并推送到仓库。