Docker訪問容器中的Spring Boot日志的幾種方法
1. 概述
在本文中,我們將演示如何在Docker容器中訪問Spring Boot日志,從本地開發(fā)環(huán)境到多容器解情況
2. Console 控制臺日志輸出
首先構(gòu)造我們的Spring BootDocker image ,使用如下命令:
mvn spring-boot:build-image
然后,當(dāng)我們運行的容器的時候,我們可以立即看到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 命令來獲取日志文件中的日志內(nèi)容:
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.
上面是如何獲取單個容器日志的方法。在下一章中,我們將學(xué)習(xí)如何獲取多個容器的日志和日志輸出
3. 使用Docker Volume保存Log文件
如果我們想從主機文件系統(tǒng)訪問日志文件,必須創(chuàng)建一個Docker Volume
我們可以使用命令構(gòu)建我們的應(yīng)用程序鏡像:
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 文件必須在當(dāng)前目錄下,才能執(zhí)行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。要了解更多關(guān)于I/O和Linux的信息,請參閱Linux文檔項目關(guān)于I/O重定向的文章。
docker logs -f
5. 結(jié)論
到此這篇關(guān)于Docker訪問容器中的Spring Boot日志的文章就介紹到這了,更多相關(guān)Docker訪問SpringBoot日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何通過DOCKER OVERLAY2目錄名查找容器名和容器ID
這篇文章主要介紹了如何通過DOCKER OVERLAY2目錄名查找容器名和容器ID問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
CentOS8上用Docker部署開源項目Tcloud的教程
這篇文章主要介紹了CentOS8上用Docker部署開源項目Tcloud,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
利用?trap?在?docker?容器優(yōu)雅關(guān)閉前執(zhí)行環(huán)境清理的方案
這篇文章主要介紹了利用?trap?在?docker?容器優(yōu)雅關(guān)閉前執(zhí)行環(huán)境清理的問題,需要在容器的啟動腳本中,加入 trap 指令,來完成容器在退出前需要做的所有事情,本文通過腳本示例給大家介紹的非常詳細,需要的朋友參考下吧2021-12-12
Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile詳解
在容器化應(yīng)用的開發(fā)和部署過程中,數(shù)據(jù)的持久化和共享是一個重要的問題,下面這篇文章主要給大家介紹了關(guān)于Docker學(xué)習(xí)之?dāng)?shù)據(jù)卷和Dockerfile的相關(guān)資料,需要的朋友可以參考下2024-04-04

