假设我的应用程序在文件夹/ app / logs /中生成日志。为方便起见,会生成多个日志文件(基于不同的运行时上下文),以便更好地进行监视。如果我使用Docker容纳我的应用程序,如何在日志文件夹中访问运行时生成的日志?
我的应用程序没有nohup类型的日志记录,当然
docker logs -f <container-id>
似乎不起作用。
答案 0 :(得分:2)
docker logs
只会显示您正在运行的进程中的stderr和stdout。
容器与集中式日志系统配合使用,因为它符合其短暂/可扩展的设计。使用syslog,loggly,graylog,logstash,fluentd等来push your docker logs over the network to a server。在一个位置访问所有应用和上下文日志。
如果那似乎太多了......
您可以直接从主机
访问日志docker exec <container-id> cat /apps/logs/context.log
您可以登录共享数据卷
docker volume create logs
docker run -v logs:/apps/logs <image>
您可以登录主机目录
docker run -v /apps/logs:/apps/logs <image>