代码之家  ›  专栏  ›  技术社区  ›  joão tiago viegas

docker容器上无法访问flask restplus微服务

  •  0
  • joão tiago viegas  · 技术社区  · 8 年前

    端点,可以找到 here 默认情况下在端口5000上本地运行的:

    cd $src_folder
    python app.py
    

    enter image description here

    RUN pip install --no-cache-dir -r requirements.txt
    CMD [ "python", "./app.py" ]
    

    ...由于某些原因,如果端口映射/公开正确,则无法访问:

        docker run -d -h $HOST --name $CONTAINER \ 
    --publish $SERVER_PORT:$CONTAINER_PORT $DOCKER_HUB_IMG:$IMAGE_VERSION
    

    ...即使容器日志显示它已正确启动:

    (venv) .../flaskexample$ docker logs flaskexample 
    2017-09-17 18:23:12,505 - werkzeug - INFO -  * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    2017-09-17 18:23:12,506 - werkzeug - INFO -  * Restarting with stat
    2017-09-17 18:23:13,016 - werkzeug - WARNING -  * Debugger is active!
    2017-09-17 18:23:13,021 - werkzeug - INFO -  * Debugger PIN: 246-320-471
    (venv) .../flaskexample$ 
    

    ...看起来也不错 docker ps :

    (venv) .../flaskexample$ docker ps
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                                                    NAMES
    9d90da7ae192        kakicode/flaskexample:latest   "python ./app.py"        4 minutes ago       Up 4 minutes        0.0.0.0:5000->5000/tcp                                                   flaskexample
    

    ..但出于某种原因,我一直得到:

    enter image description here

    ...我的想法越来越少了。。。不得不说,我没有在flask restplus配置中提供服务器名称,因为它没有任何区别,仍然存在相同的问题,而且每个其他需要端口映射/公开的容器在我的docker守护进程中都可以正常工作。 我正在Ubuntu 14.04.5中运行这些实验。

    提前感谢大家

    1 回复  |  直到 8 年前
        1
  •  5
  •   Tarun Lalwani    7 年前

    你的问题是,你会在你的应用程序中使用下面这样的东西。py公司

    app.run(debug=True, port=5000)
    

    app.run()
    

    这是用来听的 127.0.0.1

    app.run(debug=True, port=5000, host="0.0.0.0")
    

    更多参考请参见:

    http://flask.pocoo.org/docs/0.12/api/?highlight=run#flask.Flask.run

    推荐文章