我使用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中暴露端口号对于烧瓶应用程序来说是不够的?
答案 0 :(得分:1)
您的烧瓶应用程序不知道哪个端口放在dockerfile中。 您可以将应用程序保留在默认端口,并告诉docker使用-p选项在所需端口上公开它:
docker run -i -t -p 6080:5000 ...
有关详细信息,请参阅https://docs.docker.com/network/links/#connect-using-network-port-mapping。