在Docker Container中为Flask App公开一个不同的端口

时间:2018-02-08 16:38:09

标签: docker flask

我使用docker容器构建了一个烧瓶应用程序,它在端口5000上运行良好。但是为了暴露不同的端口,我必须将其放入app.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中暴露端口号对于烧瓶应用程序来说是不够的?

1 个答案:

答案 0 :(得分:1)

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

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

有关详细信息,请参阅https://docs.docker.com/network/links/#connect-using-network-port-mapping