Docker访问容器中的Spring Boot日志的几种方法

 更新时间:2026年04月28日 09:02:31   作者:xiaokanfuchen86  
在本文中,我们将演示如何在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日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何通过DOCKER OVERLAY2目录名查找容器名和容器ID

    如何通过DOCKER OVERLAY2目录名查找容器名和容器ID

    这篇文章主要介绍了如何通过DOCKER OVERLAY2目录名查找容器名和容器ID问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 使用Docker多阶段构建来减小镜像大小的方法

    使用Docker多阶段构建来减小镜像大小的方法

    这篇文章主要介绍了使用Docker多阶段构建来减小镜像大小的方法,适用于需要在 Dockerfile 中构建程式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Docker容器网络不通排查指南

    Docker容器网络不通排查指南

    本文主要介绍了Docker容器网络不通排查指南,包括容器无法访问外网、容器间网络不通、端口映射不生效、DNS解析失败以及跨主机容器通信等常见问题的诊断方法,感兴趣的可以了解一下
    2026-02-02
  • Docker连接超时的5种快速解决方法总结

    Docker连接超时的5种快速解决方法总结

    在实际的开发和测试过程中,模拟网络请求超时是非常有必要的,因为在真实的生产环境中,网络请求超时是常见的情况之一,这篇文章主要介绍了Docker连接超时的5种快速解决方法,需要的朋友可以参考下
    2025-08-08
  • docker拉取失败问题解决

    docker拉取失败问题解决

    本文主要介绍了docker拉取失败问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • CentOS8上用Docker部署开源项目Tcloud的教程

    CentOS8上用Docker部署开源项目Tcloud的教程

    这篇文章主要介绍了CentOS8上用Docker部署开源项目Tcloud,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 利用 trap 在 docker 容器优雅关闭前执行环境清理的方案

    利用 trap 在 docker 容器优雅关闭前执行环境清理的方案

    这篇文章主要介绍了利用 trap 在 docker 容器优雅关闭前执行环境清理的问题,需要在容器的启动脚本中,加入 trap 指令,来完成容器在退出前需要做的所有事情,本文通过脚本示例给大家介绍的非常详细,需要的朋友参考下吧
    2021-12-12
  • Docker学习之数据卷和Dockerfile详解

    Docker学习之数据卷和Dockerfile详解

    在容器化应用的开发和部署过程中,数据的持久化和共享是一个重要的问题,下面这篇文章主要给大家介绍了关于Docker学习之数据卷和Dockerfile的相关资料,需要的朋友可以参考下
    2024-04-04
  • Docker安装配置Redis镜像的实现步骤

    Docker安装配置Redis镜像的实现步骤

    Redis是一个由Salvatore Sanfilippo写的key-value存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多语言API,本文带你在Docker安装配置它
    2021-11-11
  • docker上部署MySQL的示例

    docker上部署MySQL的示例

    这篇文章主要介绍了docker上部署MySQL的示例,帮助大家更好的理解和学习使用docker,感兴趣的朋友可以了解下
    2021-04-04

最新评论