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

如何在容器环境的JupyterLab内运行Shiny应用?

容器内Jupyter notebook运行Shiny应用解决方案

结论

可以正常运行,你遇到的连接失败问题并非端口未开放导致,而是Shiny默认的本地监听配置、访问路径不符合JupyterLab的代理规则导致的。

修复方案

方案一:手动调整访问路径(无需额外安装插件)

  • 运行Shiny时指定监听地址、固定端口,关闭自动弹出浏览器的配置,示例代码如下:
library(shiny)
# 固定Shiny运行端口,可自定义为未被占用的端口
options(shiny.port = 7890)
# 允许所有地址访问,默认仅监听127.0.0.1会导致外部无法访问
options(shiny.host = "0.0.0.0")
runExample("01_hello", launch.browser = FALSE)
  • 运行后不要直接访问控制台输出的http://localhost:7890,而是将访问路径改为http://<你的Jupyter访问地址>/proxy/7890/,注意路径末尾的斜杠不能省略。

方案二:安装适配插件(自动匹配路径)

  • 在容器内安装jupyter-shiny-proxy插件,运行命令:
pip install jupyter-shiny-proxy
  • 安装完成后重启JupyterLab,后续运行Shiny应用时会自动适配Jupyter的代理规则,无需手动修改访问地址,适配性更高。

额外注意事项

如果你不想走Jupyter代理直接访问Shiny应用,除了在docker run时通过-p <本地端口>:<Shiny端口>映射端口外,必须确保Shiny的host配置为0.0.0.0,否则仅容器内部可以访问该服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:54:01