为什么docker-compose不按顺序打印容器输出

时间:2018-07-27 08:45:16

标签: docker docker-compose

我有4个使用docker-compose文件运行的容器。这些容器中的一个“编排”其他容器工作,因此调用其他容器执行某些任务。

我的问题是,一旦所有其他容器完成并因此完成显示其自己的输出,该“编排”容器的输出将始终显示。

为了示例,容器的工作流程如下所示:

  1. 编排容器
  2. 容器2
  3. 编排容器
  4. 容器3
  5. 编排容器
  6. 容器4
  7. 编排容器

有没有一种方法可以强制输出按顺序显示?

1 个答案:

答案 0 :(得分:1)

在附加的mod中运行docker-compose(没有-d标志以分离模式运行容器)时,您将实时从所有容器获取输出,并且无法对输出进行范围调整。

可能的解决方案是使用docker-compose文件中的设置禁用容器2、3、4中的所有日志:

logging:
    driver: none

在这种情况下,您将仅获得Orchestrater容器的输出。 将容器拆分为不同的docker-compose文件的其他方法。一个将与协调器容器一起使用,第二将与其他容器一起使用。您可以运行带有定义文件的docker-compose:

docker-compose up -f orchestrater_docker_compose.yml
docker-compose up -f services_docker_compose.yml