使用环境变量在java中发布docker容器链接

时间:2015-02-19 11:19:24

标签: docker dockerfile

我正在尝试使用一个简单的用例来模拟docker容器链接,如下所示

1)具有简单pub-sub java应用程序的docker容器,同一容器中有一个发布者和订阅者。我用dockerfiles来构建它 2)运行rabbitmq的docker容器,这是从docker hub中提取的。

现在我链接了两个容器,我能够在容器#1中看到rabbitmq环境变量。

现在我的问题是在pub-sub容器#1中使用这些容器变量的最佳方法是什么。我总是可以java System.getenv和硬编码环境变量。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

硬编码环境变量似乎没问题。环境变量遵循标准格式,如RABBITMQ_PORT_5672_TCP_ADDRRABBITMQ_PORT_5672_TCP_PORT。这些名称中唯一会改变的是标签RABBITMQ,它是根据docker run的选项设置的。运行容器的任何人都可以通过--link rabbitmq--link someothercontainer:rabbitmq控制该位,以设置别名。这只是您的容器的一部分"合同"与外部世界:容器必须以添加正确别名的变量的方式运行。

顺便说一句,如果您不想这样做,这并不会强迫您使用Docker链接,因为如果Rabbit MQ位于不同的计算机上,您可以随时传入环境变量(例如{{1 }})。