• docker部署flask项目


    一、概述

    应用案例:

    18w+淘宝cid mapping  部署线上对外提供接口

    使用两个容器:数据库(mongodb),框架(flask)

    二、操作流程

    1、拉取Mongo镜像并启动一个容器命名为mongo,端口映射 容器的27017端口映射到宿主机的27018端口(访问宿主机的27018端口就可以访问到容器的27017端口的服务)

    docker pull mongo
    docker run -id -p 27018:27017 --name=mongo mongo bash    启动容器

    2、拉去centos镜像,安装依赖环境

    通过参数 --link 来使两个容器通信

    docker pull centos:7
    docker run -it --name=taobaoweb -p 5010:5010 --link mongo:mongo centos:7                            启动并进入容器
    yum install -y vim && yum install -y lrzsz && yum install -y unzip && yum install python3
    
    pip3 install -i https://pypi.doubanio.com/simple pymongo
    pip3 install -i https://pypi.doubanio.com/simple flask
    pip3 install -i https://pypi.doubanio.com/simple gunicorn

    3、本地代码上传到docker容器内,并解压

    unzip taobao.zip

    4、进入淘宝目录配置settings文件

    settings.py

    from pymongo import MongoClient
    
    my_client = MongoClient(host="mongo",port=27017)
    mdb = my_client["dianshang"]

    host名为 

     项目文件baotaoserver.py

    #-*-coding:utf-8-*-
    from settings import mdb
    from flask import Flask,jsonify
    app = Flask(__name__)
    
    @app.route("/search/<int:num>", methods=["GET", "POST"],)
    def search_cid_mapping(num):
        try:
            data = list(mdb.taobaomapping.find({"cid":num}))[0]
            data.pop("_id")
            return jsonify(data)
        except Exception as e:
            return jsonify({})
    
    
    @app.route("/search/limit/<int:num>", methods=["GET", "POST"],)
    def search_cid_limit(num):
        try:
            data = list(mdb.taobaomapping.find({}).limit(num))
            [i.pop("_id") for i in data]
            return jsonify(data)
        except Exception as e:
            return jsonify({})
    
    if __name__ == '__main__':
        print(mdb.taobaomapping.find({"cid":40}))
        app.config["JSON_AS_ASCII"] = False
        app.run("0.0.0.0",5010)

    使用gunicorn启动flask项目

    gunicorn -w 4 -D -b 0.0.0.0:5010 taobaoserver:app         启动flask服务      taobaoserver为项目文件名

    mongo容器设置

    远程连接的开启
    在 mongodb 的容器当中
    
    #更新源
    apt-get update
    # 安装 vim
    apt-get install vim
    # 修改 mongo 配置文件
    vim /etc/mongod.conf.orig
    
    将其中的
    
    
    bindIp: 127.0.0.1
    注释掉# bindIp: 127.0.0.1
    或者改成bindIp: 0.0.0.0
    即可开启远程连接
  • 相关阅读:
    磁盘512n,512e,4k原生磁盘的区别和操作系统支持
    TLB与内存寻址,内存读取,虚拟内存的相关原理
    文件系统逻辑块与磁盘物理扇区的关系
    DBA的工作职责和每日工作
    理解数据库中的undo日志、redo日志、检查点
    React Native 常用插件案例
    React Native 学习资料
    React Native开源项目案例
    nginx rewrite 指令
    nginx反向代理配置
  • 原文地址:https://www.cnblogs.com/songzhixue/p/12604310.html
Copyright © 2020-2023  润新知