zoukankan      html  css  js  c++  java
  • 【Docker】Windows使用Docker 使用gunicorn启动Flask

    1、Windows开启Hyper-V 虚拟服务

    程序与功能->启动和关闭功能->勾选Hyper-V

     PS:如果Hyper-V 虚拟机监控程序无法勾选,可以进入BIOS 启用虚拟服务,重启后看是否能勾选,如果依然无法勾选,系统可能不支持开启,使用其他虚拟机也是一样的。

    2、官网下载Docker windows版本,傻瓜式安装

    https://hub.docker.com/?overlay=onboarding

     安装成功后,有一个可视化的管理界面;

    3、打开PowerShell (CMD的加强版,打开方式类似)

    查看是否安装成功:docker -v

    4、新建Flask工程

    4.1添加start.py

    # -*- coding: UTF-8 –*-s
    from flask import Flask
    import os
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        lines = []
        with open(os.path.join(os.getcwdu(), 'test', '234', '345.txt'), 'r') as ff:
            for line in ff.readlines():
                lines.append(line.strip())
        return "Hello, this is docker flask. 345.txt lines:{0}".format(';'.join(lines))
    
    if __name__ == '__main__':
        app.run(debug=True)

    4.2项目跟目录新建gunicorn.conf文件

    bind = "0.0.0.0:5000"
    workers = 4
    worker_class = "gevent"
    也可以使用gevent作为中间件

    4.3控制台安装包

    pip install gunicorn
    pip install gevent

    4.4导出环境

    pip freeze > requirements.txt

    4.5项目跟目录下新建Dockerfile文件

    FROM python:2.7
    
    WORKDIR /usr/src/app
    
    #COPY requirements.txt ./
    #COPY gunicorn.conf ./
    #COPY  */ ./
    ADD dockerflask.tar ./
    RUN pip install --no-cache-dir -r requirements.txt
    
    CMD ["gunicorn", "start:app", "-c", "gunicorn.conf"]
    #CMD ["python", "start.py"]
    #CMD ["ls"]

    PS:把需要放入容器的文件,全部选中后用7-zip压成tar包,使用ADD命令添加,这样可以自动解压, 很方便。其他格式可能不会自动解压。

    4.6进入pycharm shell 构建镜像
    docker build -f Dockerfile -t flasktestzlg/py:v3 .

    4.7启动容器

    docker run -itd --name flasktest --rm -p 8888:80 flasktestzlg/py:v3

    使用8888端口来访问

    查看是否启动成功:docker ps

  • 相关阅读:
    js处理富文本编辑器转义、去除转义、去除HTML标签
    web sec tools / Arachni
    OS + Linux IP / Inside IP / Outside IP
    OS + Linux SMB / Samba
    OS + Linux NTP Server
    my live / PC NAS / weiliantong QNAP TS-532X 4.5.1.1495 / cipanzhenlie / raid / Synology
    summarise() regrouping output 警告
    binary_crossentropy和BinaryCrossentropy的区别
    损失函数BinaryCrossentropy例子说明
    理解功能强大的sed替换命令
  • 原文地址:https://www.cnblogs.com/flydkPocketMagic/p/14934261.html
Copyright © 2011-2022 走看看