You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器中Streamlit应用无法访问的问题求助

Docker中Streamlit聊天机器人访问失败问题解决

问题原因分析

  1. 端口映射不匹配:容器内的Streamlit服务实际运行在8501端口(从终端输出的Network URL: http://172.17.0.2:8501可确认),但你运行容器时用了-p 8051:8051,把本地8051端口映射到了容器的8051端口,而容器内服务根本没在这个端口监听,导致访问失败。
  2. 服务绑定地址限制:Streamlit默认只绑定127.0.0.1,这意味着容器内的服务只能被容器自身访问,外部无法通过容器IP或localhost访问。

解决方案

步骤1:修正容器端口映射命令

将运行容器的命令修改为:

docker run -p 8051:8501 --name test-1 test_streamlit

这里8051:8501表示把本地的8051端口映射到容器内的8501端口(Streamlit实际运行的端口)。

步骤2:让Streamlit绑定0.0.0.0地址

有两种方式实现:

  • 方式一:修改Dockerfile的启动参数
    修改ENTRYPOINT部分,添加--server.address 0.0.0.0参数:

    ENTRYPOINT [ "streamlit", "run", "--server.address", "0.0.0.0" ]
    CMD ["main.py"]
    

    然后重新构建镜像:

    docker build -t test_streamlit . -f Dockerfile
    
  • 方式二:运行容器时直接添加参数
    不需要修改Dockerfile,直接在run命令后追加参数:

    docker run -p 8051:8501 --name test-1 test_streamlit --server.address 0.0.0.0
    

验证

完成上述修改后,重新启动容器,访问http://localhost:8051即可正常打开Streamlit聊天机器人。

内容的提问来源于stack exchange,提问作者Yash Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 07:22:45