写好了程序,打算创建镜像的时候,首先要确定自己需要什么包。
最好的办法是创建一个新的、空的虚拟环境,然后把代码导进去,看需要什么包就install什么,直到没有红色波浪线为止。最后在虚拟环境下pip freeze就知道自己需要的所有东西啦
所以这也就提醒我,以后每写一个新的项目时,最好重新建一个新的虚拟环境,不要每次都在base上。

好的,那么接下来说如何打包吧~

首先确定自己要什么基础镜像

我本次遇到的问题顺序大概是:
先去docker hub上搜了一个tensorflow,看他后面写的Ubuntu,虽然心存犹豫但我还是pull了下来。pull下来以后发现他的python版本是2.7,是不支持后面pandas等包的。卒。

所以就想那就换个python3.7的基础环境吧,在docker hub里又搜了个python3.7,但是pull下来再安装tensorflow的时候又说找不到tensorflow。卒。

百度了一下有人说要是python3.6才可以~行,那就换3.6。但是还是一样的报错。卒。

我灵机一动打算到tensorflow官网看看他的对应版本要求是什么,结果歪打正着看到官方给的docker安装,后面还贴心的告诉你这是python3,附上链接 https://www.tensorflow.org/install

docker war包景象 docker打包环境_python


二话不说就是pull。pull好之后就可以到下一步啦

然后在github里上传好docker文件

docker war包景象 docker打包环境_docker_02


把他俩放在同一个文件夹下,且这个文件夹下,只有这两个文件。

注意:requirements是txt格式,Dockerfile啥都不是

具体内容为:
Dockerfile

FROM  tensorflow/tensorflow:latest-py3
COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ -r requirements.txt

FROM后面跟的就是基础镜像pull的名字
因为我在安装requirements的时候每个包都要upgrade pip所以我干脆就写进来了
最后install别忘了换成清华镜像

requirements.txt

pandas==1.0.5
matplotlib==3.2.2
Pillow==7.2.0
opencv-python==4.3.0.36

这就是在纯净的虚拟环境下安装的所有包,把他们整理好放进来。最好写上对应版本号

离成功只有一步之遥

然后让我们登陆docker hub,绑定你的github账号,新建仓库,关联Dockerfile所在的那个文件夹就可以开始build了。(这一步不会的请去看其他教程)

如果前面都正确的话,那么build起来是非常快的。然后你就会收获一个SUCCESS

docker war包景象 docker打包环境_python_03

congratulations

最后在图示的位置复制好你的docker pull,打开terminal,command+v,回车,done。

docker war包景象 docker打包环境_docker_04

祝大家docker一步到位!!!