python docker 简单使用

2021-09-16  本文已影响0人  一只当归

一个简单的docker打包python环境到服务器上运行的例子(flask 接口):
最近项目上遇到在跳转机里面没有docker,但代码需要在里面编写测试,最后上生产又需要打包docker镜像的情况,经过一番折腾后解决了问题:本地docker打包python环境到生产上,跳转机将代码打包到生产上,然后将代码挂载到docker容器里即可。

项目最终结构:

image.png

Dockerfile

dockerfile 是用于执行docker build时执行里面命令构建镜像的文本文件。
我这里的文件编写如下:


image.png

一、项目生成

requirements.txt

image.png

python所需库列表文件,可以使用

gunicorn.conf.py

Gunicorn的配置文件,Gunicorn+flask是现在常见的部署服务方式,方便且操作简单。
Gunicorn 是一个 Python 的 WSGI HTTP 服务器,够与各种wsgi web框架协作。我这里就简单的使用几个参数。


image.png

Gunicorn以及开启异步的gevent直接pip install即可安装

start.py

这里如果能拿出服务器里的requirements.txt文件其实就没必要弄这个了,如果不行的话就需要手动把项目上需要的依赖import 加载出来,然后pipreqs ./生成requirements.txt文件。

二、环境镜像打包上传

docker build -t zqwy:v1 .                   

zqwy为镜像名,v1为版本号,注意后面的'.'代表当前目录

docker save zqwy:v1 > zqwy.tar                  
scp zqwy.tar hostname@服务器地址: path

把另一台机器上的代码也传上来。
三、解压环境镜像以及挂载代码

docker image load <zqwy.tar
docker run -rm -d --name pytest -v `pwd`:WORKDIR zqwy:v1 gunicorn start:app -c gunicorn.conf.py
docker run -d --name pytest -v `pwd`:WORKDIR zqwy:v1 bash

再用commit命令将容器打包为镜像

docker commit -a "xy" -m "my python test" pytest  zqwy:v2

然后再run

docker run -rm -d  zqwy:v2 gunicorn start:app -c gunicorn.conf.py
上一篇 下一篇

猜你喜欢

热点阅读