为什么docker-compose打印容器输出是非顺序的

4
我有4个容器,使用docker-compose文件运行。其中一个容器“编排”其他容器的工作,因此需要调用其他容器来执行某些任务。
我的问题是,“编排者”容器的输出总是在所有其他容器完成并显示其自己的输出后才显示。
为了举例说明,以下是容器工作流程的样子:
1.编排者容器 2.容器2 3.编排者容器 4.容器3 5.编排者容器 6.容器4 7.编排者容器
是否有一种方式可以强制按顺序显示输出?
1个回答

1
当你以附加模式(不使用-d标志以分离模式运行容器)运行docker-compose时,你将实时获得所有容器的输出,并且没有办法对输出进行排序。
可能的解决方案是在docker-compose文件中使用设置来禁用容器2、3、4的所有日志记录。
logging:
    driver: none

在这种情况下,您将仅获得编排器容器的输出。另一种方法是将这些容器拆分为不同的docker-compose文件。其中一个将包含编排器容器,另一个将包含其他容器。您可以使用定义文件运行docker-compose:
docker-compose up -f orchestrater_docker_compose.yml
docker-compose up -f services_docker_compose.yml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接