【发布时间】:2015-09-03 03:57:26
【问题描述】:
我们正在使用docker-compose 调出多个容器并将它们链接在一起。
我们需要能够将运行在 containerA 中的服务的 url 持久化到我们的数据存储中,以便我们以后可以查找它并使用它从 访问该服务>容器B。 containerB 不必知道服务是否作为本地容器运行,它应该能够获取 url 并使用它。
我们可以使用环境变量以标准方式获取链接容器的地址,例如
http://$CONTAINER_A_SERVICE_PORT_9000_TCP_ADDR:$CONTAINER_A_SERVICE_PORT_9000_TCP_PORT/someresource
但我的理解是,如果我们存储这个 url 并在重启容器后尝试访问服务,docker 可能已经为容器分配了一个新的端口和/或 ip,并且该地址可能是无效的。
目前我所能想到的就是在主机上公开容器的端口并使用主机的公共地址作为容器的稳定端点,但我真的想要一个避免外出的解决方案公共网络。
任何想法将不胜感激。
【问题讨论】:
-
我会使用放入
/etc/hosts的serviceB的主机名。 -
谢谢!只要我不更改我的容器链接名称/别名,这将起作用。几乎正是我需要的。如果您以答案的形式发表评论,我会接受!
标签: docker docker-compose