我的例子:我有100个容器正在运行。有一次,其中50人打电话给#34; http://partner/greet" (这不能改变)。 我希望这50个遏制者知道"其中"他们每个人都可以找到他们相应的伙伴容器(另外50个)。它是1:1的关系。
运行docker run
的容器时,我知道我可以使用--add-host
选项为主机名添加IP地址。因此,对于50个容器,我将相应的parnter容器IPv4映射到' partner'。
但我的问题是:容器IP不是静态的。当容器重新启动时,它的IP地址可能会发生变化。这是一个大问题。
我的容器可以通过ping <id>
和ping <name>
相互联系。
但是当我尝试将ID而不是IP地址添加到主机文件时,我收到一个错误:ID不是有效的IP地址(当然不是)。
我需要能够将ID或容器名称映射到&#34; partner&#34;的内容,以便这些URL调用有效。我该怎么做?这甚至可能吗?
答案 0 :(得分:0)
我认为你在寻找的是启动容器时的--link
选项:
- link = CONTAINER_NAME或ID:ALIAS
在运行容器时使用此选项会提供新容器 / etc /托管一个名为ALIAS的额外条目,指向的IP地址 由CONTAINER_NAME_or_ID标识的容器。这让流程 在新容器内部连接到主机名ALIAS而没有 知道它的知识产权。 --link =选项将在下面更详细地讨论。 因为Docker可能会为链接分配不同的IP地址 容器重启时,Docker更新了ALIAS条目 / etc / hosts收件人容器的文件。
使用以下命令启动容器时,基本上可以将容器链接到其伙伴:
docker run <partner-container-name>:partner ...
因此,在容器中,partner
将解析为伙伴容器IP,您不必对IP地址进行硬编码。