学习目标:
主要学习了使用docker上传容器镜像至阿里云的镜像仓库,以及实践了镜像的pull、build、push等一系列操作,完成了本地docker环境的配置以及代码的运行,最终提交到远程完成了比赛的全流程体验。
学习流程:
- 根据电脑操作系统选择安装相应的Docker(龟速下载,稍安勿躁),安装简单,直接install,但是有坑!!!(见问题描述1)
Mac版 Docker
Windows版 Docker - 创建阿里云镜像仓库,并配置Docker环境,可参考以下教程较为详细Docker环境配置
注意:要想成功启动Docker,需要安装wsl,启动成功后就能愉快地本地登录阿里云Docker Registry了,就可以pull阿里云提供的一些常用的基础镜像,也可以从本地push镜像到阿里云了 - 构建镜像并推送。这里我是从github上直接拉下来的开源代码气象和海洋预测,然后就可以build镜像了,具体见步骤2中教程,这里需要注意的是,一定要把当前目录切换到该文件夹下,因为配置文件Dockerfile中有明确的工作目录规定,否则将会报错。在本地跑代码时也有可能会踩坑(见问题描述2)
- 最后在远程连接上阿里云Docker Registry的基础上push上去,就能看到镜像仓库中新版本的镜像啦,在比赛官网提交镜像路径就大功告成了。
问题描述:
- 新版Docker会默认安装到C盘,且无更改安装位置操作!这会导致此后build镜像也默认存放于"C:\Users\用户名\AppData\Local\Docker\wsl\data",而该文件往往是巨大的,可能没build几次C盘就满了,这个体验很让人头疼。(解决方法见解决方案1)
- 本地跑代码可能会遇到未安装包的情况,无法运行(见解决方案2)
解决方案:
- 安装Docker前更改安装程序默认的软链接,详见Windows更改Docker安装位置,这样以后C盘就不会暴毙了…
- 在Dockerfile文件里安装包的代码前添加一句 COPY requirements.txt requirements.txt ,这样在build镜像时就会自动下载好所需要的依赖包,使之能够在本地运行。