美文网首页
docker部署python,gunicorn,flask

docker部署python,gunicorn,flask

作者: 晨雨微风 | 来源:发表于2019-12-06 13:21 被阅读0次

    python容器部署

    1. 下载镜像 下载镜像地址 我们此处下载

    docker pull python

    2. 容器部署

    docker run -p 8000:8000 --name python -itd -v /data/www/htdocs/:/www python

    # 说明

    --name python : 把容器命名为python

    -itd: i 以交互模式运行容器 t  为容器重新分配一个伪输入终端 d 后台运行容器,并返回容器ID 注意如果不加上it的话她或运行Python容器后自动关闭

    -v /data/www/htdocs/:/www :将主机中/data/www/htdocs/目录挂载到容器的/www

    3. 测试 在/data/www/htdocs目录下新建hello.py文件,内容为

    #!/usr/bin/python

    print("Hello World!")

    4. 在终端输入

    docker exec -it python python /www/hello.py

    flask应用部署

    1. 创建自定义网络

    docker network create --subnet=172.18.0.0/16 mynetwork

    2. 删除原python镜像, 创建新对象

    docker rm -f python

    docker run --net mynetwork --ip 172.18.0.5 -p 8000:8000 --name python -itd -v /data/www/htdocs/:/www python

    3. 安装扩展

    在/data/www/htdocs目录下新建requirements.txt文件

    flask

    gunicorn

    gevent

    markdown

    flask_bootstrap

    如果你要安装其他拓展的话在requirements.txt文件中添加相关插件即可(注意一个插件换一行)

    在终端输入如下命令进行安装:

    # 使用国内镜像https://pypi.tuna.tsinghua.edu.cn/simple

    docker exec -it python pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /www/requirements.txt

    4. gunicorn配置

    在/data/www/htdocs目录下新建gunicorn.conf.py文件

    # 并行工作进程数

    workers = 4

    # 指定每个工作者的线程数

    threads = 2

    # 监听内网端口8000

    bind = '0.0.0.0:8000'

    # 设置守护进程,将进程交给supervisor管理

    daemon = 'true'

    # 工作模式协程

    worker_class = 'gevent'

    # 设置最大并发量

    worker_connections = 2000

    # 设置进程文件目录

    pidfile = '/var/run/gunicorn.pid'

    # 设置访问日志和错误信息日志路径

    accesslog = '/var/log/gunicorn_acess.log'

    errorlog = '/var/log/gunicorn_error.log'

    # 设置日志记录水平

    loglevel = 'warning'

    5. 增加gunicorn启动文件

    在/data/www/htdocs目录下新建gunicorn.py文件

    import os

    import sys

    def start():

        cmd = 'cd /www/eblog; gunicorn -c gunicorn.conf.py eblog:app'

        os.system(cmd)

    def stop():

        cmd = "ps -ef | grep '/usr/local/bin/gunicorn' | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1"

        os.system(cmd)

    def restart():

        stop()

        start()

    if sys.argv[1] == 'start':

        start()

    elif sys.argv[1] == 'restart':

        restart()

    elif sys.argv[1] == 'stop':

        stop()

    else:

        print('params error!')

    6. 启动gunicorn

    docker exec -i python python /www/gunicorn.py start

    原文链接: http://world.eu-share.com/technology/135003

    相关文章

    centos7 docker部署

    docker部署php-fpm,nginx,mysql

    推荐: 浮生无事的博客

    相关文章

      网友评论

          本文标题:docker部署python,gunicorn,flask

          本文链接:https://www.haomeiwen.com/subject/tytegctx.html