【问题标题】:how docker containers can communicate in a Mesos/Marathon setupdocker 容器如何在 Mesos/Marathon 设置中进行通信
【发布时间】:2015-09-01 18:12:03
【问题描述】:

我为 Apache Airavata 创建了两个 docker 容器。假设它们是容器 A 和 B。容器 B 依赖于容器 A。启动容器 A 后,我必须将 A 的 IP 地址作为环境变量提供给容器 B。现在容器 B 的启动脚本将更改配置文件对于容器 B。在此更改后,容器 B 可以与容器 A 通信。

当我在本地 docker 环境中进行设置时,我手动创建了容器并在容器创建期间传递了所需的值。

docker run -i -d --name pga --env SERVER_HOST=172.17.1.84 --env SERVER_PORT=8930 -p 8787:80 -t pga:test

在 Mesos/marathon 环境中,可以在任何 Mesos 从属系统中创建 docker。现在我怎样才能使容器之间发生通信? 我正在使用马拉松框架启动 docker 作业。

【问题讨论】:

    标签: docker mesos marathon


    【解决方案1】:

    您描述的问题可以通过使用服务发现机制(例如Mesos DNS 或Marathon Event Bus)结合一些自定义工具(即您开发的脚本)来解决。基本上,您需要编写一个在容器 B 内运行的脚本,并使用服务发现来找出容器 A 的 IP 地址,修改配置文件,并可能重新启动服务。

    【讨论】:

      【解决方案2】:

      我建议您尝试consul 进行服务发现。此外,由于您使用 Mesos/Marathon,因此尝试 Apollo 可能会很有用,它也基于 consul。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多