听起来您只希望Compose应用程序的3个不同环境或“堆栈”彼此独立运行。在这种情况下,您可以使用
--project-name或
-p选项来处理
docker-compose。一个例子是这样的:
- 启动应用程序版本1:
docker-compose -p appv1 up -d
- 启动应用程序版本2:
docker-compose -p appv2 up -d
- 启动应用程序版本3:
docker-compose -p appv3 up -d
此时,您将运行3组不同的容器,这些容器可以相互独立扩展。Docker
Compose将在项目名称(通常从文件夹名称推断)之前加上容器名称。您将结束与容器的名字,如
appv1_worker_1,
appv2_worker_1,
appv3_worker1。如果您仅扩展
appv2工作人员服务(
docker-compose -p appv2 scale worker=2),则将获得额外的费用
appv2_worker_2。
默认情况下,compose总是创建一个默认的网络,容器可以与之通信。在这种情况下,你将有3个独立的网络(
appv1_default,
appv2_default,和
appv3_default)。
如果下一个要为每个项目名称运行不同的图像,则可以在中使用环境变量插值
docker-compose.yml。例如,您可以指定
image:${MYIMAGE}一项服务,然后执行以下操作:MYIMAGE=myorg/myapp:v1 docker-compose -p appv1 up -d
MYIMAGE=myorg/myapp:v2 docker-compose -p appv2 up -d
希望这对在Docker Compose内实现它有帮助。



