我有2个应用程序打包为图像App1和App2。我想建立一个测试环境,其中App1的实例可以与App2的实例进行通信。我希望他们通过名称而不是IP地址进行通信。我可以用compose来完成这个,两个容器在同一个VM上运行正常。
但我需要将两个容器保存在不同的VM上。我可以使用Swarm来做到这一点。 VM1具有App1和VM2托管App2,两者都作为Swarm中的服务。但是现在我需要启动另一个包含App1和App2容器的等效测试环境。 Swarm不允许我创建另一个名为app1srv和app2srv的服务,因为这些名称已经在第一个测试环境中使用过。
您如何建议我设置新环境以及随后更多此类环境?
答案 0 :(得分:0)
我可以建议您为不同的环境使用不同的名称:
APP1-刺
APP2-刺
APP1-INTEG
APP2-INTEG
就像这样,您可以使用相同的基本图像来容纳不同的容器。
答案 1 :(得分:0)
使用$COMPOSE_PROJECT_NAME
或-p
设置撰写项目名称。项目名称用作容器和网络名称的一部分,因此它们将与其他名称隔离。
请参阅https://docs.docker.com/compose/overview/#/multiple-isolated-environments-on-a-single-host