docker容器如何在mesos/marathon设置中通信

vlju58qv  于 2021-06-21  发布在  Mesos
关注(0)|答案(2)|浏览(439)

我已经为ApacheAirAvata创建了两个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作业。

ua4mk5z4

ua4mk5z41#

您描述的问题可以通过使用服务发现机制(如mesos dns或marathon事件总线)和一些定制工具(即您开发的脚本)来解决。基本上,您需要编写一个在容器b内部运行的脚本,并使用服务发现来找出容器a的ip地址,修改配置文件,还可能重新启动服务。

jjhzyzn0

jjhzyzn02#

我建议你试试领事服务发现。另外,因为你使用的是mesos/马拉松,所以尝试阿波罗可能会有用,阿波罗也是基于领事的。

相关问题