我使用的应用程序运行在3种不同的对接图像上:
整个应用程序是用docker-compose up启动的。
非常简单:)
我希望使其可伸缩,并独立于其他应用程序运行整个应用程序的多个实例(3个坞映像),然后放置一个负载均衡器(如haproxy ),它将重定向到其中一个应用程序。
我看到我可以使用docker-compose up --scale blablabla,但是问题是我可以缩放容器,但是我真的想保持不同的“应用程序”的独立性。
例如,如果我想要3个版本的应用程序,我将有9个对接图像等。
我看到我们可以使用--privilege在坞内运行对接器(允许我在里面创建一个带有3个码头工人的码头),但我在堆栈溢出上读到这不是一个合适的解决方案。
你有解决办法吗?或者至少有一些文件要看。
我听说库伯内特斯可能是个解决方案,但我不确定。我(在堆栈上)读到:
如果您需要多个容器紧密绑定,您可能需要看看库伯内特斯,它在它们的“吊舱”内运行码头。
发布于 2017-05-14 19:11:45
听起来,您只需要您的撰写应用程序的3个不同的环境或“堆栈”独立运行。如果是这样的话,您可以使用--project-name或-p选项docker-compose来处理这个问题。一个例子是这样的:
docker-compose -p appv1 up -ddocker-compose -p appv2 up -ddocker-compose -p appv3 up -d此时,您将有3组不同的容器正在运行,它们可以彼此独立地进行伸缩。Docker将将项目名称(通常从文件夹名称中推断)放在容器名称前面。您将得到容器名称,如appv1_worker_1、appv2_worker_1、appv3_worker1。如果您只扩展appv2员工服务(docker-compose -p appv2 scale worker=2),那么您将获得一个额外的appv2_worker_2。
默认情况下,撰写总是创建一个默认网络,容器可以在其中交谈。在这种情况下,您将有3个独立的网络(appv1_default、appv2_default和appv3_default)。
如果下一步想要对每个项目名称运行不同的图像,可以在docker-compose.yml中使用环境变量插值。例如,可以为服务指定image: ${MYIMAGE},然后执行如下操作:
MYIMAGE=myorg/myapp:v1 docker-compose -p appv1 up -dMYIMAGE=myorg/myapp:v2 docker-compose -p appv2 up -d希望这是一个有用的想法,以做内码头撰写。
发布于 2019-02-05 12:23:45
如果要从单个命令一次运行多个停靠器-组合文件,请使用此方法。如果复合文件是docker -come1.yml和docker-come2.yml,则可以使用
码头-合成-f码头-复合1.yml -f码头-复合2.yml up
发布于 2022-01-28 10:00:17
您可以使用.env文件。在那里,您必须设置一个COMPOSE_FILE环境变量并将其设置为COMPOSE_FILE=a.yaml:b.yaml:c.yaml。
现在您可以使用docker-compose up运行所有组合文件。
projekt/
.env
a.yaml
b.yaml
c.yamlhttps://stackoverflow.com/questions/43957259
复制相似问题