docker执行Java应用程序后台附加日志

对于在Docker容器中运行的Java应用程序,我应该在哪里输出我的日志,以便docker日志-f可以在运行一段时间之后读取java应用程序的日志输出?

我使用类似下面的方法执行活动docker容器内的java应用程序

docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar 

到目前为止,它运行我的Spring Boot Java应用程序。

以下任一种方法都可以工作吗?

 docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar > /var/log/docker-id.log 

或者将java日志path设置设置为特定的目的地?

 <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration> 

要在docker中运行应用程序并能够查看日志,那么像下面这样运行它就可以了。

Dockerfile

 FROM base-image COPY app.jar /opt/app.jar CMD ["java","-jar","/opt/rate-upload-tool.jar"] 

构buildDocker镜像

 docker build -t java-app-image-name . 

在后台运行docker图像

 docker run --name app-container-name -d java-app-image-name 

在此之后,您将能够查看泊坞窗的日志

 docker logs -f app-container-name