【发布时间】:2017-09-26 16:47:33
【问题描述】:
我的例子:我有 100 个容器正在运行。有一次,其中有 50 个呼叫“http://partner/greet”(无法更改)。 我希望这 50 个容器知道他们每个人都可以在“哪里”找到对应的伙伴容器(另外 50 个)。这是一对一的关系。
当使用docker run 运行容器时,我知道可以使用--add-host 选项将IP 地址添加到主机名。所以对于 50 个容器,我将对应的伙伴容器 IPv4 映射到“伙伴”。
但我的问题是:容器 IP 不是静态的。当容器重新启动时,它的 IP 地址可以更改。这是个大问题。
我的容器可以通过ping <id> 和ping <name> 相互访问。
但是当我尝试将 ID 而不是 IP 地址添加到主机文件时,出现错误:ID 不是有效的 IP 地址(当然不是)。
我需要一些能让我将容器的 ID 或名称映射到“合作伙伴”的东西,这样这些 URL 调用才能工作。我该怎么做?这可能吗?
【问题讨论】:
-
为什么不创建一个共享网络,给每个容器起一个名字,然后就可以用容器名作为DNS名来映射容器呢?
-
@yamenk 我实际上已经将它们放在共享网络中,但是如何将容器名称映射到“合作伙伴”?
标签: docker