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

使用Dockerfile运行Streamlit应用时页面无法加载的问题

问题排查与解决方案

1. 修正访问地址

你不应该使用容器内网IP(172.17.0.4)访问应用,这个IP是Docker内部网桥的私有地址,部分浏览器安全策略会限制访问。直接在Chrome中输入localhost:8501或http://你的宿主机IP:8501(比如宿主机局域网IP为192.168.x.x)即可,因为你已经通过-p 8501:8501完成了宿主机与容器的端口映射。

2. 清除Chrome缓存与Cookie

Chrome可能缓存了无效的连接记录,导致无法加载页面:

  • 按Ctrl+Shift+Delete打开清除数据面板
  • 勾选「缓存的图片和文件」「Cookie及其他网站数据」
  • 时间范围选择「所有时间」,点击「清除数据」后重启Chrome重试

3. 检查Chrome代理设置

如果Chrome启用了代理,可能会阻断本地/内网服务访问:

  • 打开Chrome设置,搜索「代理」并进入「打开您计算机的代理设置」
  • 确认「自动检测设置」已开启,暂时关闭手动设置的代理后重试

4. 确认Streamlit绑定地址

确保Streamlit监听容器内所有网卡,而非仅本地回环地址:

  • 在Dockerfile中指定启动命令:
    streamlit run your_app.py --server.address=0.0.0.0 --server.port=8501
    
  • 或在容器内的~/.streamlit/config.toml中配置:
    [server]
    address = "0.0.0.0"
    port = 8501
    

5. 排查Chrome安全限制

  • 暂时禁用所有Chrome扩展(设置→扩展→禁用全部),重试访问
  • 使用Chrome隐身模式(Ctrl+Shift+N)访问localhost:8501,隐身模式会禁用扩展并使用默认安全策略

6. 验证宿主机防火墙规则

虽然Firefox能访问,仍需确认宿主机防火墙允许8501端口入站:

  • Windows:打开「Windows Defender防火墙」→「高级设置」→「入站规则」,确认存在允许8501端口的规则
  • Linux:执行sudo ufw allow 8501(若使用ufw防火墙),或检查iptables规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:25:06