Docker访问容器中的Spring Boot日志的几种方法
1. 概述
在本文中,我们将演示如何在Docker容器中访问Spring Boot日志,从本地开发环境到多容器解情况
2. Console 控制台日志输出
首先构造我们的Spring BootDocker image ,使用如下命令:
mvn spring-boot:build-image
然后,当我们运行的容器的时候,我们可以立即看到STDOUT日志在控制台打印出来:
docker run --name=demo-container docker.io/library/spring-boot-docker:0.0.1-SNAPSHOT Setting Active Processor Count to 1 WARNING: Container memory limit unset. Configuring JVM for 1G container.
下面,让我在Spring Boot配置文件application.properties中配置日志输出文件
logging.file.path=logs
下面我们使用 tail -f 命令来获取日志文件中的日志内容:
docker exec -it demo-container tail -f /workspace/logs/spring.log > $HOME/spring.log Setting Active Processor Count to 1 WARNING: Container memory limit unset. Configuring JVM for 1G container.
上面是如何获取单个容器日志的方法。在下一章中,我们将学习如何获取多个容器的日志和日志输出
3. 使用Docker Volume保存Log文件
如果我们想从主机文件系统访问日志文件,必须创建一个Docker Volume
我们可以使用命令构建我们的应用程序镜像:
mvn spring-boot:build-image -v /path-to-host:/workspace/logs
然后,我们可以在主机的/path-to-host目录下看到spring.log日志文件
如果我们使用Docker Compose来运行多个容器,那么我们可以在Docker Compose中指定Volume来保存日志
Compose 文件如下:
image: helloworld:latest container_name: helloworld-logs volumes: - /path-to-host:/workspace/logs
运行上面的Compose file
docker-compose up
注意docker-compose.yaml 文件必须在当前目录下,才能执行docker-compose up ,否则会提示找不到docker-compose.yaml文件
这样,多个容器的日志就会写入到主机的/path-to-host 目录下
4. 使用 docker logs 命令
docker logs命令显示运行中的容器所记录的信息;默认情况下,docker logs显示命令的输出,就像在终端中交互式地运行命令时显示的那样。UNIX和Linux命令在运行时通常打开三个I/O流,分别是STDIN、STDOUT和STDERR。STDIN是命令的输入流,它可以包括来自键盘的输入或来自另一个命令的输入。STDOUT通常是命令的正常输出,而STDERR通常用于输出错误消息。默认情况下,docker日志显示命令的STDOUT和STDERR。要了解更多关于I/O和Linux的信息,请参阅Linux文档项目关于I/O重定向的文章。
docker logs -f
5. 结论
到此这篇关于Docker访问容器中的Spring Boot日志的文章就介绍到这了,更多相关Docker访问SpringBoot日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


最新评论