首页 > 解决方案 > 如何将 iframe 指向 docker 网络中的 url?

问题描述

我有两个码头集装箱:

运行时,可以通过主机上的 localhost:3838 访问闪亮的 Web 应用程序,而通过 localhost:80 访问静态 html 站点。

我的目标是通过 docker-compose 制作一个多容器应用程序,用户可以在其中访问静态 html,静态 html 偶尔会从shinyvia获取数据可视化<iframe src="url-to-shiny-application"></iframe>

我不知道如何将 iframe 指向源自 docker-compose 网络的 url。大多数人倾向于将他们的 Shiny 应用程序托管在可通过 Internet 访问的 url 上(即 shinyapps.io),作为一个学习项目,我想找出一种在 nginx 旁边托管容器化闪亮服务器的方法。

期望的结果是能够简单地写入<iframe src="shiny-container/app_x"></iframe>静态 html,它会app_x通过 docker 网络在闪亮的服务器上找到。

这是不是可以通过nginx配置来解决的?

标签: rdockernginxshiny

解决方案


您是否尝试过:https ://docs.docker.com/compose/networking/ ?

给出的示例 docker-compose 文件:

version: "3"
services:
  web:
    image: web
    ports:
      - "8000:8000"
  shiny:
    image: shiny
    ports:
      - "3838:3838"

每个容器现在都可以查找主机名webshiny并取回相应容器的 IP 地址。

并使用<iframe src="http://web:8000"/>或端口 80,或 8080 或您在 docker 文件中配置的内容。


推荐阅读