Docker部署Streamlit应用无法连接的问题排查求助
Docker部署Streamlit应用无法连接的问题排查求助
我一直在尝试部署一个带有Streamlit应用的容器,后续计划上传到EC2,所以先测试它在Docker容器内的运行情况。我参考了Streamlit官方的Docker部署指南和一篇社区的部署教程,但遇到了棘手的问题:
在虚拟环境中部署时,应用能正常显示,完全没问题;但通过Docker镜像部署后,浏览器访问http://0.0.0.0:8501/时却提示“无法连接”,换成localhost:8501也一样打不开。
Docker容器启动后明明输出了正常的提示:
You can now view your Streamlit app in your browser. URL: http://0.0.0.0:8501
可浏览器就是加载失败,显示“Hmmm… can't reach this page”或者“Unable to connect”,虚拟环境下却完全正常。
我已经做了这些尝试来解决问题:
- 在Dockerfile中暴露了Streamlit的默认端口8501
- 添加了Streamlit的config配置文件
- 在启动命令中明确指定了
--server.port=8501和--server.address=0.0.0.0 - 运行容器时使用了
-p 8501:8501参数将容器端口映射到本地机器 - 也尝试过社区论坛和Stack Overflow上的相关解决方案,但问题依然存在
以下是我的Dockerfile内容:
# app/Dockerfile FROM python:3.11 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY app.py . RUN mkdir /app/streamlit COPY config.toml /app/streamlit EXPOSE 8501 HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
有没有大佬能帮我排查下到底哪里出问题了呀?
备注:内容来源于stack exchange,提问作者OmegaCoding




