我有一个将日志写入文件的应用程序(例如/ var / log / my_app)。
在Docker之前,我曾使用Supervisor启动我的应用程序,并使用logrotate.d进行了轮换日志。 Logrotate.d为主管运行脚本,以便在日志轮换后重新启动我的应用程序(用于删除旧的日志文件并创建新的):
supervisor restart my_app
我应该如何使用Docker?
据我所知,如果我们仅将Docker容器与一个正在运行的应用程序一起使用,则不应使用超级用户(启动和重新启动将使用docker)。那么我该如何使用logrotate.d?
为日志目录创建“卷”并设置logrotate.d以重新启动Docker容器?但是我认为这不是一个好主意。
在我的应用程序中在Docker容器中使用logrotate.d吗?对于每个Docker映像,我将安装logrotate.d,而不是运行主管的脚本,而应运行脚本以关闭我的应用程序(杀死-9或其他)。
答案 0 :(得分:0)
如果您决定迁移到Docker,还应该调整您的应用程序。 在容器中运行的应用程序应将其日志写入控制台(系统输出)。您可以通过在记录器配置中使用CONSOLE附加程序来实现。 完成后,您可以使用以下方法从容器外部检查日志:
docker logs <container_name>
您还可以关注日志(就像使用“ tail -f”一样):
docker logs -f <container_name>
您还可以更改容器使用的日志记录驱动程序,并对日志进行更多处理。 在此处查看更多详细信息:https://docs.docker.com/config/containers/logging/configure/