我已经为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。现在,我如何才能在容器之间进行通信呢?我推出了码头作业与马拉松框架。
发布于 2015-09-01 16:42:38
您描述的问题可以通过将服务发现机制(例如Mesos DNS或Marathon Event Bus)与一些自定义工具(即您开发的脚本)结合使用来解决。基本上,您需要编写一个在容器B内部运行的脚本,并使用服务发现来找出容器A的IP地址,修改配置文件,并可能重新启动服务。
https://stackoverflow.com/questions/32317382
复制相似问题