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

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

我的问题是,所有其他容器完成后,这个“orchestrater”容器的输出总是显示出来,因此已经完成显示自己的输出.

例如,这是容器的工作流程如下所示:

> orchestrater容器
>容器2
> orchestrater容器
>容器3
> orchestrater容器
>容器4
> orchestrater容器

有没有办法强制输出按顺序显示?

最佳答案 当您在附加的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
点赞