GCP VM上Docker部署的Streamlit应用外部URL无法访问求助
GCP虚拟机Docker部署Streamlit应用外部URL无法访问问题解决
问题描述
在GCP虚拟机上通过Docker构建并部署Streamlit应用后,运行容器时会显示网络URL和外部URL,但外部URL无法加载,已排查排除防火墙问题。本地URL和同网络内的网络URL均可正常访问,需使用外部URL分享给本地网络外的用户。直接运行streamlit run streamlit_app.py时,应用在本地及同网络内可正常访问。
当前使用的启动命令:
$ docker run -p 8501:8501 streamlit_app_v1:latest
或
$ docker run -p 8501:8501 <docker_image_id>
解决方案
指定Streamlit绑定0.0.0.0:Docker容器内的Streamlit默认可能仅绑定127.0.0.1,导致外部无法访问。修改启动命令,在容器内指定Streamlit监听所有网卡:
$ docker run -p 8501:8501 streamlit_app_v1:latest streamlit run --server.address 0.0.0.0 streamlit_app.py或者在构建Docker镜像时,在Dockerfile中加入启动参数:
CMD ["streamlit", "run", "--server.address", "0.0.0.0", "streamlit_app.py"]检查GCP虚拟机外部IP配置:确保GCP虚拟机已分配静态外部IP,再次确认VPC防火墙规则允许8501端口的入站流量。
验证端口映射状态:在GCP虚拟机上执行
netstat -tulpn | grep 8501,确认宿主机的8501端口已被正确监听并映射到容器端口。
内容的提问来源于stack exchange,提问作者jarvis
相关产品推荐
相关产品推荐

