Windows的Docker-python封装

大神博客在此
目录安排
目录安排如下所示,有四个文件和一个文件夹,Dockerfile就是指我们生成Docker时的设置文件,requirements.txt是指python环境下所需要的包,gunicorn.conf.py是网络启动的配置文件,Image_packaging_test.py是接口入口程序,static文件夹是指资源文件。
在这里插入图片描述

Dockerfile

# 基础镜像信息
FROM python:3.9
# 工作目录
WORKDIR ./docker_predict_S
# 从本来的路径拷贝到容器指定路径,这么写最省事
ADD . .
# 配置python环境库
RUN pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
# 启动后台服务,执行命令
ENTRYPOINT gunicorn Image_packaging_test:app -c gunicorn.conf.py

requirements.txt

flask
gunicorn==20.1.0
gevent==21.12.0

gunicorn.conf.py

workers = 1 # 定义同时开启的处理请求的进程数量,根据网站流量适当调整
worker_class = "gevent"   # 采用gevent库,支持异步处理请求,提高吞吐量
bind = "0.0.0.0:8000" # 这个还只能是0.0.0.0
timeout = 3600  # 设置超时时间为 120 秒

Image_packaging_test.py

from flask import Flask
from flask import request
from flask import jsonify

# 从别的文件里引用,实例化一个类,方便下面调用
# from static import yingzhibiao_predict
# p = yingzhibiao_predict.predictt()


app = Flask(__name__)

@app.route("/predict_s", methods=["GET"])
def predict_s():
    # request.form.get:获取post请求的参数
    data = request.args.get('dic')
    return '这个文本就是' + data

# docker启动服务不会走main函数
if __name__ == '__main__':
    app.run()

static文件夹
里面可以放一些资源文件,引用要注意路径。

Docker 命令行
把Docker Desktop先运行起来,可以查看下里面有的镜像。

docker images

在这里插入图片描述

从封装的项目目录下开始进行封装操作,比如项目的所有文件都在最近的一个叫dockerdemo的路径下,那就要进入到dockerdemo路径下再进行封装操作。
装载建包
进入到目标路径下再开始此操作哈

docker build -t demo_flask:v1 .
参数解释
-t:为指定构建镜像的名字和版本,格式为'name:tag'
. :是为了让 Docker 到当前本地目录去寻找 Dockerfile 文件。
    将DockerFile同级目录的所有东西打tar包发送到服务器上,
    最后利用DockerFile中的其他命令来构建一个镜像。

运行docker

docker run -it --rm -p 8000:8000 demo_flask:v1
参数解释
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--rm: 退出容器后,容器会被删除,常用于测试;
-p: 指定容器暴露的端口。

在浏览器输入http://127.0.0.1:8000/predict_s?dic=adasd就可以了。
传递多个参数的话就用 & 符号连接多个参数即可
http://127.0.0.1:8000/predict_s?dic1=adasd&dic2=生活而已,快乐第一
导出
先把刚运行的容器关闭下,全关了镜像状态就是不用了,再导出。

docker save -o demo_flask.tar demo_flask:v1
参数解释
-o:指定地址和文件名 镜像名
示例
docker save -o /data/export/test.tar test:4.0
把名字为test,版本为4.0的docker镜像,保存到/data/export目录下,保存名字和格式为test.tar

删了重新导入看看

docker rmi 镜像id
删除镜像:docker rmi
删除容器:docker rm

导入

docker load -i demo_flask.tar
参数解释
 -i : 指定导入的文件

容器打包成镜像

Docker 提供了 commit 命令支持将容器重新打成镜像文件,其命令格式如下所示

 docker commit [OPTIONS] CONTAINER [REPOSITORY]:[TAG]
参数解释
 CONTAINER : 容器名称或者容器ID
 [REPOSITORY]:[TAG] == 镜像名:镜像版本号

命令中的选项 [OPTIONS] 有如下候选

Option功能
-a指定新镜像作者
-c使用 Dockerfile 指令来创建镜像
-m提交生成镜像的说明信息
-p在 commit 时,将容器暂停
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值