Skip to main content
 首页 » 编程设计

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

2025年12月25日38TianFang

我使用 docker 容器构建了一个 Flask 应用程序,它在端口 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 中公开端口号对 Flask 应用程序来说还不够吗?

请您参考如下方法:

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

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

https://docs.docker.com/network/links/#connect-using-network-port-mapping更多细节。