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
即可开启远程连接

 

posted @ 2020-03-31 14:15  叫我大表哥  阅读(1554)  评论(0编辑  收藏  举报