首页 > 解决方案 > docker-compose:即使容器关闭,如何继续以“关注”模式显示日志?

问题描述

如果您docker-compose logs -f service在一个终端中运行并尝试在另一个终端中重新启动service,则日志记录将停止,您将需要重新启动dkc logs。怎么继续dkc logs跑?

到目前为止,我发现的唯一解决方案是运行额外的 noop 服务,该服务不允许dkc logs关闭。如果这是唯一的解决方案,那么您noop对 ​​docker hub 上已经存在的最简单的服务有什么建议吗?

我的解决方法:

  1. 向其中添加新noop服务docker-compose.override.yml(我选择了 redis,因为它已经安装并且非常轻量级):
services: 
  noop: 
    image: redis:5-alpine
  1. 运行docker-compose logs -f service noop而不是service.
  2. 运行docker-compose stop/restart servicelogs进程将通过noop服务保持活动状态。

缺点:

标签: dockerdocker-compose

解决方案


也许有关您正在记录的内容的一些信息。例如,在 nginx 或 php 容器上,我们只需使用卷将日志文件移到容器外,将它们挂载到主机上,然后您可以根据需要解析它们。

    volumes:
      - /var/log/mysql/error_service_xy.log:/var/log/mysql/error.log

推荐阅读