代码之家  ›  专栏  ›  技术社区  ›  Gayatri

在Docker容器内为Flask应用程序公开不同的端口

  •  4
  • Gayatri  · 技术社区  · 8 年前

    我使用docker容器构建了一个烧瓶应用程序,它在端口5000上运行良好。然而,为了公开不同的端口,我必须在应用程序中加入端口。py组件

    if __name__ == '__main__':
        app.run(debug=True,host='0.0.0.0',port=6000)
    

    一旦我启动docker容器,它就会很好地工作。

    然而,当我

    if __name__ == '__main__':
        app.run(debug=True,host='0.0.0.0')
    

    在Dockerfile里说

    EXPOSE 6000
    

    并在docker容器上运行flask应用程序,它不会在端口6000上运行,而是在端口5000上运行。为什么会这样?dockerfile中的端口号对于flask应用程序来说不够吗?

    1 回复  |  直到 8 年前
        1
  •  4
  •   BOC    8 年前

    您的flask应用程序不知道dockerfile中放了哪个端口。 您可以将应用程序保留在默认端口,并告诉docker使用-p选项在所需端口上公开它:

    docker run -i -t -p 6080:5000 ...
    

    看见 https://docs.docker.com/network/links/#connect-using-network-port-mapping 了解更多详细信息。

    推荐文章