gpt4 book ai didi

docker - 同一主机上的多个 docker WLS 容器,使外部世界可以访问它们

转载 作者:行者123 更新时间:2023-12-02 19:43:09 26 4
gpt4 key购买 nike

我有一个运行 weblogic 的 docker 容器,其中部署了我们的一些应用程序 (EAR)。当这些 EAR 中的每一个启动时,它们都会向外部服务管理器组件注册自己。在注册时,会提供主机地址(使用 InetAddress)和 appPath(来自 servlet 上下文)。因此,对于服务管理器组件,应用程序可以通过 = http://{hostAddress}:/{appPath}/获得。当不同的应用程序消费者想要访问应用程序时,他们会咨询服务管理器并获取端点。

现在,要让它工作,我必须在启动 weblogic 容器时执行以下操作之一

  • 使用 --net=host 选项或
  • 设置 --name= 并使用 -p 7001:7001
  • 公开 weblogic 管理端口

    只有这样才能从外部访问该应用程序。如果我不使用这些选项中的任何一个,则 http://{hostAddress}:/{appPath}/中的 {hostAddress} 将替换为容器的主机名,然后无法从外部访问该应用程序

    但这会产生一个问题,因为现在我不能在一台主机上运行多个 WebLogic 容器。有没有办法解决这个问题,让我们运行多个 weblogic 容器实例,同时仍然允许外部世界访问它们?

    最佳答案

    当然。你有几个选择:

  • 您可以在不同的端口上公开服务。例如,如果您在主机端口 7001 上运行第一个容器(使用 -p 7001:7001),则可以在端口 7002(-p 7002:7001)上公开第二个容器,依此类推。
  • 您可以将容器绑定(bind)到不同的主机 IP 地址。当您使用 -p 发布端口时,您可以提供端口应绑定(bind)到的特定主机地址。语法是 -p <ip>:<hostPort>:<containerPort> ,因此假设您的主机同时拥有 172.16.1.100172.16.1.101在接口(interface)上分配的地址,您可以使用 -p 172.16.1.100:7001:7001 启动一个容器和带有 -p 172.16.1.101:7001:7001 的第二个容器.
  • 关于docker - 同一主机上的多个 docker WLS 容器,使外部世界可以访问它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29169378/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com